字符串操作是js中用的比较频繁的操作,所以非常有必要熟悉字符串的常见操作方法。
1、charCodeAt方法
返回一个整数,代表指定位置字符的Unicode编码。
strObj.charCodeAt(index)
说明:
index将被处理字符的从零开始计数的编号。有效值为0到字符串长度减1的数字。
如果指定位置没有字符,将返回NaN。
例如:
var str = "ABC";
str.charCodeAt(0);
结果:65
2、fromCharCode方法
从一些Unicode字符串中返回一个字符串。
String.fromCharCode([code1[,code2...]])
说明:
code1,code2…是要转换为字符串的Unicode字符串序列。如果没有参数,结果为空字符串。
例如:
String.fromCharCode(65,66,112);
结果:ABp
提示: charCodeAt和fromCharCode刚好是两个相反的方法,charCodeAt返回的是指定位置的字符的字符编码,而fromCharCode返回的是指定字符编码代表的字符。
3、charAt方法
返回指定索引位置处的字符。如果超出有效范围的索引值返回空字符串。
strObj.charAt(index)
说明:
index想得到的字符的基于零的索引。有效值是0与字符串长度减一之间的值。
例如:
var str = "ABC";
str.charAt(1);
结果:B
4、indexOf方法
返回String对象内第一次出现子字符串索引位置(从左到右搜索)。如果没有找到子字符串,则返回-1。
strObj.indexOf(substr[,startIndex])
说明:
- 参数substr为要在String对象中查找的子字符串。
- 参数startIndex为该整数值指出在String对象内开始查找的索引。如果省略,则从字符串的开始处查找。
例如:
01234567
var str = "ABCDECDF";
str.indexOf("CD",1); // 由1位置从左向右查找 123...
结果:2
提示: charAt和indexOf刚好是两个相反的方法,charAt返回的是指定索引位置的字符,而indexOf返回的是指定字符的索引位置。
5、lastIndexOf方法
返回String对象中字符串最后出现的位置。如果没有匹配到子字符串,则返回-1。
strObj.lastIndexOf(substr[,startindex])
说明:
- substr要在String对象内查找的子字符串。
- startindex该整数值指出在String对象内进行查找的开始索引位置。如果省略,则查找从字符串的末尾开始。
例如:
01234567
var str = "ABCDECDF";
str.lastIndexOf("CD",6); // 由6位置从右向左查找 ...456
结果:5
6、slice方法
返回字符串的片段。
strObj.slice(start[,end])
说明:
- 如果只有一个参数,则复制的是参数数字所表示的长度,索引从0开始
- start指明子字符串的起始位置,该索引从0开始起算。如果start为负,将它作为length+start处理,此处length为字符串的长度。
- end指明子字符串的结束位置,该索引从0开始起算。如果end为负,将它作为length+end处理,此处length为字符串的长度。
例如:
012345
var str = "ABCDEF";
str.slice(2,4);
结果:CD
str.slice(1)
结果:A
7、substring方法
返回位于String对象中指定位置的子字符串。
strObj.substring(start,end)
说明:
- start指明子字符串的起始位置,该索引从0开始起算。
- end指明子字符串的结束位置,该索引从0开始起算。
- substring方法使用start和end两者中的较小值作为子字符串的起始点。
- 如果start或end为NaN或者为负数,那么将其替换为0。
例如:
012345
var str = "ABCDEF";
str.substring(2,4); // 或 str.substring(4,2);
结果:CD
8、substr方法
返回一个从指定位置开始的指定长度的子字符串。
strObj.substr(start[,length])
说明:
start所需的子字符串的起始位置。字符串中的第一个字符的索引为0。
length在返回的子字符串中应包括的字符个数。
例如:
012345
var str = "ABCDEF";
str.substr(2,4);
结果:CDEF
9、search方法
返回与正则表达式查找内容匹配的第一个字符串的位置。如果没有匹配到子字符串,则返回-1。
strObj.search(reExp)
说明:
reExp包含正则表达式模式和可用标志的正则表达式对象。
例如:
var str = "ABCDECDF";
str.search("CD"); // 或 str.search(/CD/i);
结果:2
10、concat
将两个或多个字符的文本组合起来,返回一个新的字符串。
str.concat([string1[,string2...]])
说明:
string1,string2要和所有其他指定的字符串进行连接的String对象或文字。
例如:
var str = "ABCDEF";
str.concat("ABCDEF","ABC");
结果:ABCDEFABCDEFABC
和“+”的效果是一样的
11、split
将一个字符串分割为子字符串,然后将结果作为字符串数组返回。
strObj.split([separator[,limit]])
说明:
- separator字符串或 正则表达式 对象,它标识了分隔字符串时使用的是一个还是多个字符。如果忽略该选项,返回包含整个字符串的单一元素数组。
- limit该值用来限制返回数组中的元素个数。
例如:
var str = "AA BB CC DD EE FF";
alert(str.split(" ",3));
结果:
["AA", "BB", "CC"]
12、toLowerCase方法
返回一个字符串,该字符串中的字母被转换成小写。
例如:
var str = "ABCabc";
str.toLowerCase();
结果:abcabc
13、toUpperCase方法
返回一个字符串,该字符串中的所有字母都被转换为大写字母。
例如:
var str = "ABCabc";
str.toUpperCase();
结果:ABCABC
14、match方法
可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
match() 方法将检索字符串 String Object,以找到一个或多个与 regexp 匹配的文本。这个方法的行为在很大程度上有赖于 regexp 是否具有标志 g。如果 regexp 没有标志 g,那么 match() 方法就只能在 stringObject 中执行一次匹配。如果没有找到任何匹配的文本, match() 将返回 null。否则,它将返回一个数组,其中存放了与它找到的匹配文本有关的信息。
例如:
var str = "The rain in SPAIN stays mainly in the plain";
var n=str.match(/ain/gi);
结果:["ain", "AIN", "ain", "ain"]
15、replace() 方法
用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
该方法返回替换后的新字符串,该方法不会改变原始字符串。
replace如果替换数据时,默认只替换第一个。
例如:
var str=“Mr Blue has a blue house and a blue car.”;
var n=str.replace(/blue/g,"red");
结果:Mr Blue has a red house and a red car.
16、trim()方法去除字符串两边的空白
浏览器兼容性: IE9及以上
17、valueOf() 方法可返回 String 对象的原始值。
注意: valueOf() 方法通常由 JavaScript 在后台自动进行调用,而不是显式地处于代码中。
例如:
var str="Hello world!";
document.write(str.valueOf());
结果:Hello world!