为了账号安全,请及时绑定邮箱和手机立即绑定

我如何用 ${var} 使用 RegExp 替换模板?

我如何用 ${var} 使用 RegExp 替换模板?

慕桂英4014372 2021-06-02 17:54:35
例如:使用 /\${key}/ 作为常规字符串可以,替换成功但是直接使用字符串'${key}',答案不是我想要的如果我使用 split 和 join 会更慢吗?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)Answer:tp1: XXXAAXXXAAXXXAAXXXAAtp2: XXX${key}XXX${key}XXX${key}XXX${key}tp3: XXXAAXXXAAXXXAAXXXAA
查看完整描述

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)


查看完整回答
反对 回复 2021-06-03
?
一只甜甜圈

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


查看完整回答
反对 回复 2021-06-03
?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

代替正则表达式,考虑定义一个接受并返回替换字符串的函数key,允许您使用模板文字:


const insertKey = (key) => `XXX${key}XXX${key}XXX${key}XXX${key}`;

console.log(

  insertKey('AA'),

  insertKey('foo')

);


查看完整回答
反对 回复 2021-06-03
  • 3 回答
  • 0 关注
  • 170 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信