RegEx - \ [和\]之间的文本

时间:2012-03-12 00:03:02

标签: javascript regex

我对$$个符号(question with $$)提出了同样的问题,但无法使用\[\]符号使其工作(相同的代码)。我需要正则表达式模式来识别我在这些符号中的时间(我可以在同一文本中有多个,它们都应该被覆盖)。

text.replace(/\$.*?\$/g, function(m, n){
    if(caret > n && caret < (n + m.length)){
        alert("BOOM");
    }
});

所以/\$.*?\$/g应该变成别的东西,所以当我在\[\]标志内时,它会识别出来。定期更换不起作用(/\\[.*?\\]/g)。

同样\[some\thing\]应该有效 - 它应该选择some\thing(\不应该造成任何麻烦)。

2 个答案:

答案 0 :(得分:2)

如果您想要按字面意思匹配\[,则必须同时转义\[两个字符,因此它变为\\\[\]相同})。

一般情况下:每当您想要匹配具有特殊含义的字符时,您必须使用\将其转义。

但请注意,反斜杠也是字符串中的转义字符。因此,如果您将字符串定义为:

"\[some\thing\]"

实际值是

"[some  hing]"

\t是标签页)

你也必须逃离\

"\\[some\\thing\\]"
//  "\[some\thing\]"

因此,在考虑正则表达式之前,请仔细检查实际输入。

答案 1 :(得分:1)

您可以使用:

/\\\[(.*?)\\\]/g