如何在 JavaScript 中用 '${}' 替换 '[['?

5

我试图将[[替换为${

var str = "it is [[test example [[testing";
var res = str.replace(/[[[]/g, "${");

我得到的结果是 "it is ${${test example ${${testing",但我想要的结果是 "it is ${test example ${testing"



1
为什么要踩这个问题?这个问题很好,清楚地解释了问题,并提供了已尝试过的示例代码。 - Ben
4个回答

5

您的正则表达式不正确。

[[[]

将匹配一个或两个 [ 符号,并将其中一个 [ 替换为 ${

请参见 错误正则表达式的演示

[ 是正则表达式中的特殊符号。因此,要匹配文字意义上的 [,需要通过在 regex 中添加 \ 对其进行转义。否则,[ 会被视为字符类。

var str = "it is [[test example [[testing";
var res = str.replace(/\[\[/g, "${");
//                     ^^^^

document.write(res);


嗯,我认为这里每个人都忘了一件事。如果你在代码片段中找到了这个问题,我会点赞这个答案。 - Wiktor Stribiżew

4

你想要使用反斜杠 \ 来转义 [ 符号。

var res = str.replace(/\[\[/g, "${");

2
只是转义字符的问题。在 [ 前使用 \
var str = "it is [[test example [[testing";
var res = str.replace(/\[\[/g, "${");

2
如果您不想使用正则表达式。
var res = str.split('[[').join('${');

样例展示:

var str = "it is [[test example [[testing";
var res = str.split('[[').join('${');

document.write(res);


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接