我有一个例子:
var p = /^(\d)+$/;
var s = '834736';
var a = p.exec(s);
console.log(a);
我想将第一个数字^(\d)
分组,但结果是:
["834736", "6"]
它抓住最后一位数。有人可以向我解释一下吗?谢谢!
答案 0 :(得分:4)
如果您只想抓住第一个数字,请将第一个数字放在组中,并匹配组外的其余数字,如下所示:
/^(\d)\d*$/
您只抓住最后一位数的原因是,您为每个匹配的数字重复相同的组。这意味着,每次匹配一个新数字时,该组的旧内容都会被替换,因此您将得到最后一个数字作为您的组的结果。
答案 1 :(得分:2)
您应该将+
放在组内或(如果您只想要第一个数字)拆分表达式:
/^(\d)\d*$/