我有一个像这样的字符串“[[String1]],[[String2]],[[String3]]”。我需要删除所有方括号。为此我在Javascript中使用了replace函数。
var str = "[[String1]],[[String2]],[[String3]]";
var str1 = str.replace(/[[/g,''); //not working
var str2 = str1.replace(/]]/g,''); //working
任何人都可以帮我解决这个问题。
答案 0 :(得分:4)
在正则表达式中,[
具有特殊含义(它会启动"字符类"您可以说[abc]
,其匹配a
,{ {1}}或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>
和[
,所以:
]
&#13;
var str = "[[String1]],[[String2]],[[String3]]";
var str1 = str.replace(/[\[\]]/g,'');
snippet.log("str = " + str);
snippet.log("str1 = " + str1);
&#13;
在正则表达式<!-- 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
和最后一个[
标记字符类,内部的]
和\[
是文字字符\]
和[
。 (你在技术上不需要逃离1>} 角色类,但我不得不承认我倾向于......我不知道...... .clarity。)
答案 1 :(得分:1)
在\
之前添加[
,
var str = "[[String1]],[[String2]],[[String3]]";
var str1 = str.replace(/\[\[/g,'');
console.log(str1);
&#13;
您需要转义[
,因为[
是special char。
答案 2 :(得分:0)
var str = "[[String1]],[[String2]],[[String3]]";
var str1 = str.replace(/\[\[/g,'').replace(/\]\]/g,'');
alert(str1);
答案 3 :(得分:0)
在正则表达式中,[
- 字符表示可以匹配该组中任何字符的字符组的开头。您需要使用反斜杠[
转义\[
。
var str = "[[String1]],[[String2]],[[String3]]";
var str1 = str.replace(/\[/g,'');
答案 4 :(得分:0)
如果要删除打开和关闭方括号,可以试试这个
"[[String1]],[[String2]],[[String3]]".replace(/\[|\]/g, "")
方括号用于字符类[]
,如果要匹配它,则必须使用模式中的反斜杠对其进行转义。管道|
正在说或者,所以匹配空方括号或右括号。
答案 5 :(得分:0)
您需要在[
]
之前添加\
,因为它们是正则表达式中的特殊字符。在您的情况下,您要删除字符串中的所有方括号。这意味着你需要全部捕获它们。为此,您需要定义一组这些字符。
在正则表达式[]
中定义要捕获的一组字符。在您的情况下,您想要捕获[
和]
,因为它们是特殊字符,您首先需要将它们转义。
所以你想要的是:
var str = "[[String1]],[[String2]],[[String3]]";
var str1 = str.replace(/[\[\]]/g,'');
console.log(str1);