We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
replace 本身是JavaScript字符串对象的一个方法,它允许接收两个参数:
replace([RegExp|String],[String|Function])
第1个参数可以是一个普通的字符串或是一个正则表达式
第2个参数可以是一个普通的字符串或是一个回调函数
如果第1个参数是RegExp, JS会先提取RegExp匹配出的结果,然后用第2个参数逐一替换匹配出的结果
第2个参数是字符串,对于正则replace约定了一个特殊标记符$:
'中国人民'.replace(/(中国)/g,'($1)') //"(中国)人民" 例外 '中国人民中国人民'.replace(/(中国)/g,'($2)') //"($2)人民($2)人民" 由于没有组$2, ()代表一个组,此处只有一个组 'cdab'.replace(/(ab)/g,'$`') //"cdcd" 'abcd'.replace(/(ab)/g,"$'") //"cdcd" 'abcdabcd'.replace(/(ab)/g,"[$&]") //"[ab]cd[ab]cd" '$1$2wa,test'.replace(/[a-zA-z]/g,'$$'); //"$1$2$$,$$$$"
如果第2个参数是回调函数,每匹配到一个结果就回调一次,每次回调都会传递以下参数:
函数参数的规定:
函数的匹配返回值,作为每次的匹配替换值。
'abcdedddabc12323abc'.replace(/[abc]/g,function(matched,index,originalText){ return matched+'~' }) //"a~b~c~deddda~b~c~12323a~b~c~" 'abcdedddabc12323abc'.replace(/[abc]/g,function(matched,index,originalText){ return '~' }) //"~~~deddd~~~12323~~~" 'abcdeabc'.replace(/[ab]/g,function(matched,index,originalText){ return '['+index+']'; }) //"[0][1]cde[5][6]c" var k = "abc123ac222".replace(/(\d+)/g, function(matched, $1, index, originalText){ return Number(matched)+1 }) //abc124ac223 var k1 = "abc123ac222".replace(/(\d+)/g, function(matched, $1, index, originalText){ return Number($1)+1 }) //abc124ac223
题目:要求对一个串的重复部分进行替换处理,比如:abcabcaabbbdd,该串中abc紧接着abc,a后紧接着a,无论重复多少次,我们都用#替换掉
//因为有一个捕获组,所以,需要再传递1参数 $1 'abcaabbccccdddabcabcef'.replace(/(\w+)\1+/g,function(matched,$1,index,originalText){ return '#'; }) //"abc#####ef" 等同于 'abcaabbccccdddabcabcef'.replace(/(\w+)\1+/g, "#")
另外:
'abcaabbccccdddabcabcef'.replace(/(\w+)\1/g,function(matched,$1,index,originalText){ console.log(matched);return '#'; }) // "abc####d#ef"
如果只是保留非重复部分,也就是紧连接的aaa,只需要保留a即可。那么我们可以这么改:
'abcaabbccccdddabcabcef'.replace(/(\w+)\1+/g,function(matched,$1,index,originalText){ return $1; }) //"abcabccdabcef"
正则表达式 RegExp 代码中的代码 正则表达式30分钟入门教程
The text was updated successfully, but these errors were encountered:
No branches or pull requests
replace 本身是JavaScript字符串对象的一个方法,它允许接收两个参数:
第1个参数可以是一个普通的字符串或是一个正则表达式
第2个参数可以是一个普通的字符串或是一个回调函数
如果第1个参数是RegExp, JS会先提取RegExp匹配出的结果,然后用第2个参数逐一替换匹配出的结果
第2个参数是字符串,对于正则replace约定了一个特殊标记符$:
如果第2个参数是回调函数,每匹配到一个结果就回调一次,每次回调都会传递以下参数:
函数参数的规定:
函数的匹配返回值,作为每次的匹配替换值。
题目:要求对一个串的重复部分进行替换处理,比如:abcabcaabbbdd,该串中abc紧接着abc,a后紧接着a,无论重复多少次,我们都用#替换掉
另外:
如果只是保留非重复部分,也就是紧连接的aaa,只需要保留a即可。那么我们可以这么改:
正则表达式
RegExp 代码中的代码
正则表达式30分钟入门教程
The text was updated successfully, but these errors were encountered: