js实现replace
JavaScript 字符串替换方法
JavaScript 提供了多种方式实现字符串替换,以下是常见方法:
1. String.prototype.replace() 基础用法
语法:str.replace(searchValue, replaceValue)
-
替换第一个匹配项:
let str = 'apple banana apple'; let newStr = str.replace('apple', 'orange'); console.log(newStr); // 'orange banana apple' -
使用正则表达式全局替换:
let str = 'apple banana apple'; let newStr = str.replace(/apple/g, 'orange'); console.log(newStr); // 'orange banana orange'
2. 使用回调函数进行动态替换
let str = 'Price: $5, $10';
let newStr = str.replace(/\$\d+/g, match => {
return '¥' + match.slice(1) * 7;
});
console.log(newStr); // 'Price: ¥35, ¥70'
3. 替换特殊字符 处理需要转义的字符:
let str = 'a*b*c';
let newStr = str.replace(/\*/g, '-');
console.log(newStr); // 'a-b-c'
4. 使用模板字符串替换 适用于需要组合多个值的场景:
let user = {name: 'John', age: 30};
let str = 'Hello {name}, you are {age} years old'.replace(/{(\w+)}/g, (_, key) => user[key]);
console.log(str); // 'Hello John, you are 30 years old'
5. 链式替换多个模式
let str = 'foo bar baz';
let newStr = str.replace(/foo/g, '1').replace(/bar/g, '2').replace(/baz/g, '3');
console.log(newStr); // '1 2 3'
注意事项

- 原字符串不会被修改,replace() 总是返回新字符串
- 当第一个参数是字符串时,只替换第一个匹配项
- 使用正则表达式时注意特殊字符需要转义
- 在替换大量文本时,正则表达式比多次字符串替换更高效






