我已经"icon_abc".match(/\bicon_(.*?)\b/);
工作了,打印出来的["icon_abc", "abc"]
但是当我使用时"icon=abc".match(/\bicon=(.*?)\b/);
,我无法得到 abc,它会打印["icon=", ""]
如何在 Javascript 中匹配这些特殊符号?如: = -
?
我已经"icon_abc".match(/\bicon_(.*?)\b/);
工作了,打印出来的["icon_abc", "abc"]
但是当我使用时"icon=abc".match(/\bicon=(.*?)\b/);
,我无法得到 abc,它会打印["icon=", ""]
如何在 Javascript 中匹配这些特殊符号?如: = -
?
=
不是那个意义上的特殊符号。
这会做,例如:
"icon=abc".match(/\bicon=(.+)\b/)
也可以这样:
"icon=abc".match(/\bicon=(.*)\b/)
您需要进一步阐明您的要求,以便涵盖可能字符串的整个字段。
删除 ?
"icon=abc".match(/\bicon=(.*)\b/);
["icon=abc", "abc"]
利用:
"icon=abc".match(/\bicon=(.+?)\b/)
问题是这*
意味着匹配零个或多个前面的 RE,并且?
修饰符使其非贪婪,因此它将返回最短的匹配。在这种情况下,零长度字符串匹配,因为单词边界就在那里。
更改为+
意味着它将匹配 1 个或更多,因此当它已经位于单词边界时,您不会得到空匹配。