1
我有一個例子:誤區有關正則表達式
var p = /^(\d)+$/;
var s = '834736';
var a = p.exec(s);
console.log(a);
我想組第一位^(\d)
,但結果是:
["834736", "6"]
它趕上最後一位。任何人都可以向我解釋?謝謝!
我有一個例子:誤區有關正則表達式
var p = /^(\d)+$/;
var s = '834736';
var a = p.exec(s);
console.log(a);
我想組第一位^(\d)
,但結果是:
["834736", "6"]
它趕上最後一位。任何人都可以向我解釋?謝謝!
如果你只希望捕獲的第一個數字,把第一個數字組中,以及數字匹配其餘組外,像這樣:
/^(\d)\d*$/
的原因,你只趕上最後一個數字是,你重複相同的組爲你匹配每個數字。這意味着,每次匹配一個新數字時,該組的舊內容將被替換,因此您將得到最後一個數字作爲組的結果。
你應該把+
組內或(如果你只想要第一個數字)分割表達式:
/^(\d)\d*$/
感謝您的回答。但你能告訴我爲什麼我的上面的正則表達式抓住最後一位數字嗎? –
@BoodCarley您將'+ +'放在捕獲組外,所以捕獲組一次只匹配1個數字,直到它不再匹配,此時它包含最後一位數字。 – Zirak