1.1 RegExpObject.test(string) test() 方法用于检测一个字符串是否匹配某个模式. ( 推荐 ) 等价于 r.exec(s) != null
new RegExp("W3School").test('Visit W3School') // true
new RegExp("W3School").exec('Visit W3School') != null // true
1.2 RegExpObject.exec(string) exec() 方法用于检索字符串中的正则表达式的匹配。 有匹配则返回对应数组,无匹配返回null
用到它是为了获取到更多的信息,可结合规则打印到控制台慢慢体会 (慎用)
1.3 RegExpObject.compile(regexp,modifier) compile() 方法也可用于改变和重新编译正则表达式。 (慎用)
2.支持正则表达式的字符串方法
2.1 stringObject.search(regexp/str) search() 方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。 返回 stringObject 中第一个与 regexp 相匹配的子串的起始位置。
var str="Visit W3School!"
str.search(/W3School/) //6
str.search('W3School') //6
2.2 stringObject.match(regexp/str) 在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。 类似 indexOf() 和 lastIndexOf(),但是它返回指定的值,而不是字符串的位置
"1 plus 2 equal 3".match(/\d+/g) // ["1", "2", "3"]
"1 plus 2 equal 3".match(/\d+/) // ["1", index: 0, input: "1 plus 2 equal 3"]
2.3 stringObject.replace(regexp/substr,replacement) replacement 必需。一个字符串值。规定了替换文本或生成替换文本的函数。
'hello'.replace(/l/g,'w') //"hewwo"
"Doe, John".replace(/(\w+)\s*, \s*(\w+)/, "$2 $1"); // "John Doe"
"aaa bbb ccc".replace(/\b\w+\b/g, function(word){
return word.substring(0,1).toUpperCase()+word.substring(1);}
); //"Aaa Bbb Ccc"
2.4 stringObject.split(regexp/substr,howmany) howmany 可选。该参数可指定返回的数组的最大长度 把一个字符串分割成字符串数组。
"Will you ?".split(" ") // ["Will", "you", "?"]
"Will you ? ?".split(" ") // ["Will", "you", "?", "?"]
"Will you ? ?".split(" ",3) // ["Will", "you", "?"]