我有:
var regex = /[\d]*/;
var str = 'tom123is456';
var match = str.match( regex );
document.write(match);
我原本期待回到123456.
根据我的理解,问号(*)告诉引擎匹配0或更多事物的出现,加号(+)告诉引擎匹配某事件的一个或多个出现。现在“\ d”是0-9的缩写。
在上面的例子中,我什么都没回来。当我使用加号(+)时,我会回来123.任何人都可以解释为什么会这样吗?
答案 0 :(得分:2)
因此,您不应混淆全局搜索和否 / *一个*以及更多匹配。如果需要匹配字符串中的所有数字,请使用全局g
标志:
'tom123is456'.match(/\d/g); // ["1", "2", "3", "4", "5", "6"]
要获得后续令牌匹配,请使用*
或+
:
'tom123is456'.match(/\d+/g); // ["123", "456"]