[英]Javascript improve regex to match number chunks of 3
如果我可以通過示例獲得數字22345678
我想得到['22','345','678']
我想獲得3個數字塊。 使用以下正則表達式
/(\d{1,3})(?=(\d{3})+(?!\d))/g
我得到['22','345']
任何人都可以幫助我提高我的正則表達式?
這里有一個例子 - > https://regex101.com/r/cF6rN4/1和這篇文章中的一個片段
console.log('22345678'.match(/(\\d{1,3})(?=(\\d{3})+(?!\\d))/g));
匹配字符串,后面跟着長度為3的乘數或最后的數字。
console.log('22345678'.match(/\\d{1,3}(?=(\\d{3})+$|$)/g));
您可以避免捕獲組,因為它沒有必要。
/\d{1,3}(?=(?:\d{3})+$|$)/g
//---------^^^-------------
更新:通過使用*
( 0
或更多次重復)而不是+
( 1
或更多次重復)可以更加簡化,這有助於避免管道符號。 作為@torazaburo的評論(\\d{3})*$
和(\\d{3})+$|$
是等價的。
/\d{1,3}(?=(\d{3})*$)/g
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.