3 回答
TA贡献1712条经验 获得超3个赞
$表示正则表达式中的字符串结尾,这就是为什么您需要使用\. 如果您使用带有正则表达式字符串的构造函数,则需要对其进行双重转义:'\\${key}'以便它在字符串中保留一个反斜杠
let tp1 = "XXX${key}XXX${key}XXX${key}XXX${key}";
tp1 = tp1.replace(new RegExp(/\${key}/, 'g'), 'AA');
console.log(tp1)
let tp2 = "XXX${key}XXX${key}XXX${key}XXX${key}";
tp2 = tp2.replace(new RegExp('\\${key}', 'g'), 'AA');
console.log(tp2)
let tp3 = "XXX${key}XXX${key}XXX${key}XXX${key}";
tp3 = tp3.split(`\${key}`).join('AA')
console.log(tp3)
TA贡献1836条经验 获得超5个赞
如果你想把它用作占位符,你只需要使用不同的引号 `` 而不是 ''
let key = 'BB';
let tp2 = "XXXBBXXXBBXXXBBXXXBB";
tp2 = tp2.replace(new RegExp(`${key}`, 'g'), 'AA');
console.log(tp2); //XXXAAXXXAAXXXAAXXXAA
key = '\\${key}';
let tp3 = "XXX${key}XXX${key}XXX${key}XXX${key}";
tp3 = tp3.replace(new RegExp(`${key}`, 'g'), 'AA');
console.log(tp3); //XXXAAXXXAAXXXAAXXXAA
TA贡献1900条经验 获得超5个赞
代替正则表达式,考虑定义一个接受并返回替换字符串的函数key,允许您使用模板文字:
const insertKey = (key) => `XXX${key}XXX${key}XXX${key}XXX${key}`;
console.log(
insertKey('AA'),
insertKey('foo')
);
添加回答
举报