JavaScript中常用字符串方法总结

字符方法

stringObject.charAt()

charAt(index)方法可以返回指定位置的字符。index必需,当然我们也可以通过下标的方式来获取指定位置的字符。
注意:字符串中第一个字符的下标是0。如果参数index不在0与string.length 之间,该方法将返回一个空字符串。

stringObject.charCodeAt()

charCodeAt(index)可返回指定位置字符的Unicode编码。index必需
注意:字符串中第一个字符的下标是0。如果index 是负数,或大于等于字符串的长度,则charCodeAt()返回NaN。

String.fromCharCode()

fromCharCode()参数为1个或者多个Unicode值,然后返回一个字符串。这个方法与上面的charCodeAt()方法执行的是相反的操作。

字符串截取

stringObject.substring()

substring(start, stop)方法用于提取字符串中介于两个指定下标之间[start, stop)的字符串。start必需,参数不能为负值。

stringObject.substr()

substr(start, length)从字符串start位置处截取指定长度的字串。start必需,可以为负值,为负值时是从该字符串的尾部开始算起。

stringObject.slice()

slice(start, end)也可用于截取字符串,范围也是[start, end),与substring()方法的不同之处在于start,end均可为负值。

字符串的查找与替换

stringObject.indexOf()/lastIndexOf()

indexOf(searchValue, fromIndex)方法可返回某个指定的字符串值在字符串中首次出现的位置。如果要检索的字符串值没有出现,则该方法返回-1,对大小写敏感!searchValue必需,fromIndex可选。而lastIndexOf(searchValue, fromIndex)方法是在一个字符串中的指定位置从后向前搜索,返回一个指定的字符串值最后出现的位置。例如:

1
console.log('111111'.lastIndexOf('1'));//5

search(regexp)方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。返回第一个与regexp相匹配的子串的起始位置,如果没有找到任何匹配的子串,则返回-1。对大小写敏感,不过我们可以在正则表达式中加个/i,意思是忽略大小写。

stringObject.match()

match(searchValue/regexp)也可用于检索字符串,支持全局匹配,而且返回的是所有满足条件的值(数组存储)。如果没有找到任何匹配的文本,match()将返回null。

stringObject.replace()

replace(regexp|substr, newSubstr|function),如果第二个参数为function的话,参数有match, p1, p2,…, offset, string。可以在在replace()中使用global和ignore选项。
我们可以使用replace()方法交换字符串中的两个单词:

1
2
3
4
var re = /(\w+)\s(\w+)/;
var str = "John Smith";
var newstr = str.replace(re, "$2 $1");
console.log(newstr);// Smith John

这个脚本使用了$1, $2代替两个文本。

字符串与数组转换

str.split([separator[, limit]]):使用指定的分隔符字符串将一个String对象分割成字符串数组。
Tips:如果空字符串(“”)被用作分隔符,则字符串会在每个字符之间分割。
arr.join(separator):将一个数组(或一个类数组对象)的所有元素连接成一个字符串并返回这个字符串,默认值为,也可以为空字符串。

字符串大小写转换

1
2
str.toLowerCase();
str.toUpperCase();

其他方法

stringObject.concat(stringX,…)

concat()参数为1个或者多个字符串对象,返回一个新字符串。此方法与”+”运算符作用相同,后者更为简便。

stringObject.trim()

trim()方法会从一个字符串的两端删除空白字符,不会改变原字符串,会返回一个新字符串。trim方法手写实现:

1
2
3
String.prototype.trim = function() {
return this.replace(/^\s+|\s+$/g, '');
}

其他链接:
有意思的特殊符号