正则表达式方法 && 支持正则表达式的字符串方法

时间:2021-10-17 15:29:29

1.正则表达式方法

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", "?"]