JavaScript高级程序设计之基本包装类String
String 类型
string类型的常用的方法:
1,构造方法:
var stringObj = new String("hello world");
不推荐使用,实际上当你 var str = "ss" 的时候,javaScript后台已经创建过一个对象了,不过,使用的时间非常短,就是在你一行代码执行的瞬间就已经消失不见了。
eg:var str = new String("ss");
str = null;
当你想给字符串添加属性的时候:
so: var str = "ss";
str.color = "red";
alert(str.color); //undefined
2,字符方法:
2.1 两个常用访问字符串中特定字符的方法是:charAt()和charCodeAt();这两个方法都接受一个参数,就是基于 0 的数字,而这个数字是指在字符中的位置。
两者之间的区别在于他们返回的值不同:
eg: var str = "hello world";
str.charAt(1); // e
str.charCodeAt(1); // 101 :就是小写e的字符编码
2.2 另一种获取字符的方法是:[] ;这个方法也是接受一个参数,同上的方法
eg:str[1]; //e
3,字符串操作方法
3.1 组合字符串的方法是:concat() 和 "+" ;concat方法接受任意多个参数,然而我们在实际使用中更多是使用 "+" ,特别是拼接多个字符的情况。
eg: var str = "hello" + "hh"; //hello hh
str = str.concat("world"," "); //hello hh world
str += "!"; //hello hh world!
3.2 基于字符串创建新字符串的方法:slice()、substr()和substring();
相同点:1,这三种方法都会返回被操作字符串的子字符串,
2,而且都是接受 1或2 个参数
不同点:1,在参数同为正数的情况下,第二个参数的定义不一致,slice()和substring()方法,第二个参数是指定的子字符串最后一个字符后面的位置(当你的这个参数已经超出整个字符串的长度的时候,也不会报错),而substr()的方法,第二个参数指的是,要截取的子字符串的长度,同样,超长不会报错
2,在第一个参数同为负数的情况下,各自处理的方式也不一致,slice()和substr()会将传入的负值和字符串的长度相加,然后取值,而substring()则把负值直接转换为0
eg: var str = "hello";
str.slice(-2); //lo
str.substr(-2)://lo
str.sbustring(-2); //hello
3,在第一个参数为正第二个参数为负的情况,slice()将传入参数的值和字符串的长度相加,然后取值,substr()和substring()会将负数转换为0;
eg: str.slice(1,-2); 转换后 str.slice(1,3); 结果:e ;从起始位置1,截取到3,中间就剩下 e
str.substr(1,-2);转换后 str.substr(1,0); 结果:"" //从起始位置1,截取 0个,中间没有
str.substring(1,-2);转换后 str.substring(1,0);会再次转换:str.substring(0,1); 结果: l //这个方法会将较小的值当做起始点,较大的值当做结束点
4,字符串位置方法
有两个可以从字符串中查找子字符串的位置方法:indexOf() 和 lasIndexOf() 这个两个方法,都是从指定的字符串中搜索给定的子字符串,然后,返回这个子字符串的位置,没有就返回 -1 ;
相同点:都可以接受两个参数,第一个参数是给定的子字符串,第二个是要从指定的地方开始搜索,通过这个特性可以找到字符串中所有的相同的子字符串
不同点:一个从前开始搜索,一个从后开始搜索
5,trim()方法
该方法创建一个字符串的副本,删除前置以及后缀的所有空格,然后返回结果!还有非标准的trimLeft()和trimRight(),分别删除字符串开头和末尾的空格。
6,字符串大小写转换方法
ECMAScript涉及字符串大小写转换有四个方法:toLowerCase()、toLocaleLowerCase()、toUpperCase()和toLocaleUpperCase();
7,字符串的模式匹配方法
定义的几种模式匹配方法:
7.1, match():只有一个参数,要么是正则表达式,要么是RegExp对象,返回的是一个数组
7.2,search():参数可以为正则表达式或则字符串,返回的是第一个匹配项的索引;如果没有找到返回 -1
7.3,replace():简化替换子字符串的方法,该方法接受两个参数,第一个可以是字符串或则正则表达式,第二个为参数,这个做为精细调节所用
7.4,split():此方法可以基于指定的分隔符将一个字符串分割成多个子字符串,并将结果放到数组中,有两个参数,第一个参数是分隔符,可以是字符串也可以使正则表达式,
第二个指定数组的大小。
8,localeCompare()方法
比较两个字符串,并返回下列其中的一个值:
1,如果字符串的首字母在字符表中排在字符参数的首字母之前,则返回一个负数,大多是 -1 ,比如 字符串(hello)在 字符串参数( wrold )之前
2,如果字符串等于字符串参数,返回 0
3,如果字符串的首字母在字符表中排在字符参数的首字母之后,则返回一个正数数,大多是 1 ,比如 字符串(hello)在 字符串参数( wrold )之后
9,fromCharCode()方法
字符串的构造函数有一个静态方法:fromCharCode();和 chatCodeAt()方法相反,获得多个字符编码,转换成字符串。

浙公网安备 33010602011771号