js replace函数的高级用法
一、简介
JavaScript中的replace()方法是字符串对象的原型方法,用于在一个字符串中查并替换指定的子串。它可以接收两个参数:第一个参数是要被替换的子串或正则表达式,第二个参数是用来替换它的字符串或函数。replace()方法会返回一个新的字符串,而不会改变原始字符串。
二、基本用法
1. 替换指定子串
最基本的使用方式就是替换指定的子串。例如:
let str = "Hello, world!";
let newStr = place("world", "JavaScript");
console.log(newStr); // Hello, JavaScript!
2. 替换所有匹配项
如果要替换所有匹配项,可以使用正则表达式,并在正则表达式中添加g标志(表示全局匹配)。例如:
let str = "Hello, world! Hello, JavaScript!";
let newStr = place(/Hello/g, "Hi");
字符串replace函数console.log(newStr); // Hi, world! Hi, JavaScript!
3. 区分大小写
默认情况下,replace()方法是区分大小写的。如果不想区分大小写,可以使用正则表达式,并在正则表达式中添加i标志(表示忽略大小写)。例如:
let str = "Hello, World!";
let newStr = place(/world/i, "JavaScript");
console.log(newStr); // Hello, JavaScript!
4. 获取匹配项信息
replace()方法可以接收一个函数作为第二个参数,这个函数会在每次匹配时被调用,并且可以获取匹配项的信息。例如:
let str = "Hello, world!";
let newStr = place(/(\w+), (\w+)/, function(match, p1, p2) {
console.log(match); // Hello, world
console.log(p1); // Hello
console.log(p2); // world
return p2 + ", " + p1;
});
console.log(newStr); // world, Hello!
三、高级用法
1. 替换为函数返回值
除了可以替换为固定的字符串外,replace()方法还可以替换为函数返回值。例如:
let str = "Hello, world!";
let newStr = place(/world/, function() {
return "JavaScript";
});
console.log(newStr); // Hello, JavaScript!
在这个例子中,replace()方法接收一个正则表达式和一个函数作为参数。当匹配到world时,会调用这个函数,并将匹配到的字符串作为第一个参数传入。
2. 使用捕获组
在正则表达式中使用捕获组,可以在替换时引用它们。例如:
let str = "John Smith";
let newStr = place(/(\w+)\s(\w+)/, "$2 $1");
console.log(newStr); // Smith John
在这个例子中,正则表达式/(\w+)\s(\w+)/匹配到了"John Smith"这个字符串,并将它分成了两个捕获组:第一个捕获组是"John",第二个捕获组是"Smith"。在替换时,使用了"$2 $1"这个字符串作为替换值,它表示将第二个捕获组放在前面,第一个捕获组放在后面。
3. 使用反向引用
除了使用捕获组外,还可以使用反向引用来引用匹配到的子串。例如:
let str = "John Smith";
let newStr = place(/(\w+)\s(\w+)/, "$`$2, $1$'");
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论