使用带有量词的字符类的JavaScript正则表达式

时间:2013-12-27 14:25:48

标签: javascript regex

我有:

var regex = /[\d]*/;

var str = 'tom123is456';

var match = str.match( regex );

document.write(match);

我原本期待回到123456.

根据我的理解,问号(*)告诉引擎匹配0或更多事物的出现,加号(+)告诉引擎匹配某事件的一个或多个出现。现在“\ d”是0-9的缩写。

在上面的例子中,我什么都没回来。当我使用加号(+)时,我会回来123.任何人都可以解释为什么会这样吗?

1 个答案:

答案 0 :(得分:2)

因此,您不应混淆全局搜索和 / *一个*以及更多匹配。如果需要匹配字符串中的所有数字,请使用全局g标志:

'tom123is456'.match(/\d/g);  // ["1", "2", "3", "4", "5", "6"]

要获得后续令牌匹配,请使用*+

'tom123is456'.match(/\d+/g);  // ["123", "456"]

参考: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Advanced_Searching_With_Flags