0

我有一个模式如下:

var patt = /((name)|(names)*)/g;

我有一个匹配字符串:

var word = "namesnames";

word 在逻辑上是根据模式,但是 word.match(patt) 返回:

["name", "", "name", "", ""]

这是错误的!我想要匹配的“namesnames”结果,请帮助我。谢谢。

4

2 回答 2

0

如果我正确理解你想要什么,你可以让它更简单:

var patt = /(names?)+/g;
于 2013-07-07T05:54:25.007 回答
0

问题是您使用(names)*了 0 次或更多次,意思是“名称”,而您应该使用了((name)(?:s))+1 次或更多次。

于 2013-07-07T06:08:17.097 回答