我已经"icon_abc".match(/\bicon_(.*?)\b/);
工作,打印["icon_abc", "abc"]
但是当我使用"icon=abc".match(/\bicon=(.*?)\b/);
时,我无法获得abc,它会打印["icon=", ""]
如何在Javascript中匹配这些特殊符号?例如:= -
?
答案 0 :(得分:4)
=
不是特殊符号。
这样做,例如:
"icon=abc".match(/\bicon=(.+)\b/)
那就是这样:
"icon=abc".match(/\bicon=(.*)\b/)
您需要进一步澄清您的要求,以便涵盖可能的字符串的整个字段。
答案 1 :(得分:0)
删除?
"icon=abc".match(/\bicon=(.*)\b/);
["icon=abc", "abc"]
答案 2 :(得分:0)
使用:
"icon=abc".match(/\bicon=(.+?)\b/)
问题是*
表示匹配前面RE中的零个或多个,而?
修饰符使其不贪心,因此它将返回最短的匹配。在这种情况下,零长度字符串匹配,因为字边界就在那里。
更改为+
表示它将匹配1或更多,因此当它已经位于单词边界时,您将不会获得空匹配。