2012-11-02 52 views
-2

我HAVA得到"icon_abc".match(/\bicon_(.*?)\b/);工作,打印["icon_abc", "abc"]如何在Javascript中匹配“=”?

但是当我使用"icon=abc".match(/\bicon=(.*?)\b/);,我不能让ABC,它打印["icon=", ""]

如何搭配在Javascript这些特殊符号?如:= -

回答

4

=不是那个意义上的特殊符号。

这会做,例如:

"icon=abc".match(/\bicon=(.+)\b/) 

所以才会这样:

"icon=abc".match(/\bicon=(.*)\b/) 

你需要进一步澄清您的要求,从而使可能的串整场被覆盖。

0

删除?

"icon=abc".match(/\bicon=(.*)\b/); 
["icon=abc", "abc"] 
0

使用:

"icon=abc".match(/\bicon=(.+?)\b/) 

的问题是,*表示匹配前述RE的零个或多个,并且?改性剂使其非贪婪,所以它会返回可能的最短匹配。在这种情况下,零长度字符串匹配,因为字边界就在那里。

更改为+表示它将匹配1个或更多,所以当它已经处于单词边界时,您不会获得空匹配。

相关问题