match
方法用于确定原字符串是否存在某个子字符串,返回一个数组,成员为匹配的第一个字符串。如果没有找到匹配,则返回null
。
'cat, bat, sat, fat'.match('at') // ["at"]'cat, bat, sat, fat'.match('xt') // null->indexOf也有类似功能'cat, bat, sat, fat'.indexOf('xt')// -1复制代码
返回的数组还有index
属性和input
属性,分别表示匹配字符串开始的位置和原始字符串。
var matches = 'cat, bat, sat, fat'.match('at');matches.index // 1matches.input // "cat, bat, sat, fat"复制代码
search
方法的用法基本等同于match
,但是返回值为匹配的第一个位置。如果没有找到匹配,则返回-1
。
'cat, bat, sat, fat'.search('at') // 1复制代码
- 注意:
search
方法还可以使用正则表达式作为参数,但indexOf
不能。
replace
方法用于替换匹配的子字符串,一般情况下只替换第一个匹配(除非使用带有g
修饰符的正则表达式)。
stringObject.replace(regexp/substr,replacement)复制代码
'aaa'.replace('a', 'b') // "baa"'aaa'.replace(/a/g, 'b') // "bbb"复制代码
split
方法按照给定规则分割字符串,返回一个由分割出来的子字符串组成的数组。
'a|b|c'.split('|') // ["a", "b", "c"]复制代码
如果分割规则为空字符串,则返回数组的成员是原字符串的每一个字符。
'a|b|c'.split('') // ["a", "|", "b", "|", "c"]复制代码
如果省略参数,则返回数组的唯一成员就是原字符串。
'a|b|c'.split() // ["a|b|c"]复制代码
如果满足分割规则的两个部分紧邻着(即两个分割符中间没有其他字符),则返回数组之中会有一个空字符串。
'a||c'.split('|') // ['a', '', 'c']复制代码
如果满足分割规则的部分处于字符串的开头或结尾(即它的前面或后面没有其他字符),则返回数组的第一个或最后一个成员是一个空字符串。
'|b|c'.split('|') // ["", "b", "c"]'a|b|'.split('|') // ["a", "b", ""]复制代码
split
方法还可以接受第二个参数,限定返回数组的最大成员数。
'a|b|c'.split('|', 0) // []'a|b|c'.split('|', 1) // ["a"]'a|b|c'.split('|', 2) // ["a", "b"]'a|b|c'.split('|', 3) // ["a", "b", "c"]'a|b|c'.split('|', 4) // ["a", "b", "c"]复制代码
上面代码中,split
方法的第二个参数,决定了返回数组的成员数。