2011-04-10 48 views
2

可能重复:
Escape string for use in Javascript regex正则表达式搜索的特殊字符 “[”

我有对特殊字符难度扫描 “[”。环顾四周后,我已经试过:

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

(我确实想大小写敏感,我只想要第一次出现,所以我有意不加任何修饰)

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

+2

它为我:'正则表达式( “[\ x5B]”)测试( “[”)'产生true。 – Gumbo 2011-04-10 15:49:56

+0

谢谢大家的快速解答,我真的很感激。然而,向谁投下了投票权,感谢对新手的耐心;我只是想学习。 – Zak 2011-04-10 16:11:44

+1

正则表达式_fun!_但我强烈建议花一两个小时来学习基础知识。对于初学者来说,你需要知道哪些字符是特殊的:需要转义的“元字符”(并且规则在字符类内部和外部是不同的。)有一个很好的在线教程:[www.regular-expressions.info](http://www.regular-expressions.info/)。你花在那里的时间会多次为自己付出。快乐的regexing! – ridgerunner 2011-04-10 16:49:28

回答

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

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

+0

你是对的,这是完美的!我试图使用RegExp.lastIndex(),如果没有“g”修饰符就无法使用。实质上,它被关闭了,我试图用它来告诉我我的搜索是否有结果。谢谢, – Zak 2011-04-10 16:42:42

1

应该是罚款,如果你只是逃避性格:

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

你需要两个反斜杠是因为反斜杠字符串转义字符了。所以\\[将导致字符串\[这是我们需要的。

+0

谢谢,这是一个完美的解释。我选择了其他答案,因为它首先弹出,但我给了你一个赞成这个惊人帮助的投票!谢谢, – Zak 2011-04-10 16:40:12

-2

我认为,所有你需要的是/ [/为你的表达找到的第一次出现“[”

如果有更复杂的东西你正在寻找,看看这个工具: http://www.gskinner.com/RegExr/

这是创建正则表达式的生命保护程序。

+0

我的JavaScript控制台拒绝'/ [/'作为无效的正则表达式。 – 2011-04-10 15:53:22

+0

'''是一个特殊字符。 – 2011-04-10 15:55:40

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]/)); 
相关问题