簡體   English   中英

Javascript改進正則表達式以匹配3的數字塊

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM