javascript - 无法替换 Javascript 中的字符串

标签 javascript

我有一个像这样的字符串“[[String1]],[[String2]],[[String3]]”。我需要删除所有方括号。为此,我使用了 Javascript 中的替换函数。

var str = "[[String1]],[[String2]],[[String3]]";
var str1 = str.replace(/[[/g,''); //not working
var str2 = str1.replace(/]]/g,''); //working

谁能帮我解决这个问题。

最佳答案

在正则表达式中,[ 具有特殊含义(它启动一个“字符类”,您可以在其中表示 [abc],它匹配 a bc)。

为了使其不特殊,请在其前面添加一个反斜杠以对其进行转义:

var str = "[[String1]],[[String2]],[[String3]]";
var str1 = str.replace(/\[\[/g,'');
var str2 = str1.replace(/]]/g,'');
snippet.log("str = " + str);
snippet.log("str1 = " + str1);
snippet.log("str2 = " + str2);
<!-- Script provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>

事实上,字符类可以在这里提供帮助,因为您想同时替换 [],所以:

var str = "[[String1]],[[String2]],[[String3]]";
var str1 = str.replace(/[\[\]]/g,'');
snippet.log("str = " + str);
snippet.log("str1 = " + str1);
<!-- Script provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>

在正则表达式 /[\[\]]/g 中,第一个 [ 和最后一个 ] 标记字符类,并且里面的 \[\] 是文字字符 []。 (从技术上讲,您不需要转义字符类中的 [ ,但我必须承认我倾向于......我不知道......清晰度。)

关于javascript - 无法替换 Javascript 中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29795571/

相关文章:

javascript - 验证此输入的最简单方法?

javascript - 使用javascript计算数组中的数字总和

javascript - createSVGPoint 不是函数?

javascript - 使用触摸事件在移动浏览器上模拟鼠标悬停的最佳方法是什么?

javascript - 如何在打字时设置文本框格式?

javascript RegEx 仅检测空格\s

javascript - 如何在 Javascript 中检查 es6 代理的类型?

javascript - Linq JS 连接语法

javascript - 将功能组合到一个按钮

javascript - 输入类型按钮启用/禁用属性