利⽤正则表达式进⾏字符串替换(replace⽅法)语法
参数
regexp (pattern)
⼀个RegExp对象或者其字⾯量。该正则所匹配的内容会被第⼆个参数的返回值替换掉。
substr (pattern)
⼀个要被newSubStr替换的{{jsxref("String","字符串")}}。其被视为⼀整个字符串,⽽不是⼀个正则表达式。仅仅是第⼀个匹配会被替换。
newSubStr (replacement)
⽤于替换掉第⼀个参数在原字符串中的匹配部分的 {{jsxref("String", "字符串")}}
function (replacement)
⼀个⽤来创建新⼦字符串的函数,该函数的返回值将替换掉第⼀个参数匹配到的结果。
返回值
⼀个部分或全部匹配由替代模式所取代的新的字符串。
描述
上⾯语法的含义是说:⼀共两个参数,但是两个参数可以分别传输不同的类型的值。
可能你看上⾯BB半天了也没看明⽩,没关系,我们直接来上代码:
⽤法
1. 基本⽤法
var x = "abcda";
//两个参数都是字符串
var y = x.replace('a','x');//'xbcda'
2. 进阶⽤法
var x = "abcda";
//前⾯参数使⽤正则,后⾯使⽤字符串
var y = x.replace(/a/g,'x');//'xbcdx'
3. 复杂⽤法
var x = 'abcda';
//前⾯参数使⽤正则,后⾯使⽤字符串
var y = x.replace(/a/g,function(match){
UpperCase();
字符串replace函数});//'AbcdA'
应⽤场景
这⾥只讲复杂⽤法中的应⽤场景实际使⽤,⽐如有个需求:你需要html⽂件中的标签之间的所有
标签中的字符a替换为字符b。当然如果是正则⼤神的话就可以跳过这⾥了,主要以下⽅式⽐较容易理解,更适合正则新⼿。解决办法:
var allData = "<body>"+'\r\n'+
"<div>aaa</div>"+'\r\n'+
"<p>aaa</p>"+'\r\n'+
"</body>";
allData = place(/\<body\>([\s\S]*?)\<\/body\>/g, function(match) {
place(/\<p\>(.*?)\<\/p\>/g, function(match1) {
place(/a/g, "b")
})
});
PS:在进⾏全局的搜索替换时,正则表达式需包含g标志。
如果对以上有什么疑问,可以在评论区发表,⽅便⼤家进⾏探讨

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。