正则表达式(RegExp)整理:JS 中字符串的 replace()、search() 与 match() 方法

AUTHOR | nicechi
类别 | 知识储备
发表 | 2020-02-19 11:53:05
更新 | 2020-08-06 21:26:47

replace()

replace() 用来替换一个字符串中的特定字符,并返回替换后的字符串。

string.replace(searchvalue,newvalue);

searchvalue : 用来指定字符串中将要被替换的值

1、searchvalue 的值可以是一个将要被替换的字符串,也可以是一个正则表达式,但是当 searchvalue 的值为字符串的话,只能替换第一个匹配项,但是当 searchvalue 的值为正则表达式的话(在修饰符 g 的作用下),则可以替换所有的匹配项

var content='I am nice and welcome to my nice blog';

//此时 searchvalue 的值为一个所要被替换的字符串,且只能替换第一个匹配项
console.log(content.replace('nice','NICE'));   //结果为 I am NICE and welcome to my nice blog

//此时 searchvalue 的值为一个正则表达式,在修饰符g的作用下可以替换全部的匹配项
console.log(content.replace(/nice/g,'NICE'));  //结果为 I am NICE and welcome to my NICE blog

newvalue : 用来指定被替换后的值


 

search()

search() 用来搜索指定的字符串,并返回第一个匹配项中的第一个字符的位置(从0开始算起),如果没有匹配项的话,则将会返回-1

string.search(regexp)

regexp : 正则表达式,用来匹配所要搜索的字符串

1、如果此参数不是一个正则表达式,而是一个字符串的话,此字符串将会被隐式地转换成正则表达式(通过 new RegExp(regexp))

var content='I am nice and welcome to my nice blog';
console.log(content.search('welcome'));   //返回 14
console.log(content.search(/welcome/));   //返回 14

 

match()

match() 用来匹配指定的字符串,并以Array的形式返回所有的匹配项,如果没有匹配项的话,将返回 null

string.match(regexp)

regexp:正则表达式,用来匹配字符串

1、如果此参数不是一个正则表达式,而是一个字符串的话,此字符串将会被隐式地转换成正则表达式(通过 new RegExp(regexp))

2、如果此参数为一个字符串的话,只能返回第一个匹配项,但是如果此参数为一个正则表达式的话,在使用修饰符 g 的情况下,可以返回所有的匹配项

3、与 string.match() 相似,regexpObject.exec(content) 也是用来返回匹配项,但是 regexpObject.exec(content) 每次只能返回一个匹配项,如果需要返回所有的匹配项的话,就需要通过遍历的方式,关于 regexpObject.exec() 请移步:正则表达式(RegExp)整理:JS 中 RegExp 对象的 compile()、exec() 与 test() 方法 

4、如果此参数为空的话(即直接使用string.match()),返回的结果为 [""]

var content='I am nice and welcome to my nice blog';
console.log(content.match('nice'));    //返回第一个匹配到的nice,即 ['nice']
console.log(content.match(/nice/g));   //返回所有的nice,因为有修饰符g,即 ['nice','nice']
console.log(content.match())           //regexp参数为空,返回 ['']

 

最后,希望这篇文章能带给你点启发,Have Fun!


CATEGORY

TOP