RegEx搜索特殊字符“[”

时间:2011-04-10 15:45:38

标签: javascript regex

我在扫描特殊字符“[”时遇到困难。环顾四周后,我试过了:

var regEx = new RegExp(someValue + "[\x5B]");  // "5B" is the hex-value for "["

(我想要区分大小写,我只想要第一次出现,所以我故意不添加任何修饰符。)

我一直在寻找,我仍然不知道我做错了什么。如果这是一个愚蠢的问题,我很抱歉,但我是JavaScript的新手,而且我还在学习所有的细节。

5 个答案:

答案 0 :(得分:3)

function escapeRegExp(str) {
  return str.replace(/[-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
}

var re = new RegExp(escapeRegExp(str));   

请参阅:Escape string for use in Javascript regex

答案 1 :(得分:1)

如果你只是逃避角色,应该没问题:

new RegExp(someValue + "\\[");

你需要两个反斜杠,因为反斜杠也是字符串的转义字符。因此\\[会产生字符串\[,这就是我们所需要的。

答案 2 :(得分:1)

var regEx = new RegExp(someValue + "\\[");

你只需要用反斜杠来逃避它。反斜杠是双倍的,因为它也是一个javascript特殊字符。

答案 3 :(得分:0)

正则表达式.\[.[\x5B]都匹配文本中的子字符串"e["

"some[text"

你可以看到自己:


http://ideone.com/iR78l

var text = "some[text";
print(text.match(/.\[/));

http://ideone.com/qvsCz

var text = "some[text";
print(text.match(/.[\x5B]/));

答案 4 :(得分:-2)

我认为您需要的是/ [/为您的表达式找到第一次出现的“[”

如果您正在寻找更复杂的内容,请查看此工具: http://www.gskinner.com/RegExr/

创建正则表达式可以节省生命。