我有一个像这样的字符串“[[String1]],[[String2]],[[String3]]”。我需要删除所有方括号。为此,我使用了 Javascript 中的替换函数。
var str = "[[String1]],[[String2]],[[String3]]";
var str1 = str.replace(/[[/g,''); //not working
var str2 = str1.replace(/]]/g,''); //working
谁能帮我解决这个问题。
最佳答案
在正则表达式中,[
具有特殊含义(它启动一个“字符类”,您可以在其中表示 [abc]
,它匹配 a
、b
或 c
)。
为了使其不特殊,请在其前面添加一个反斜杠以对其进行转义:
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/