簡體   English   中英

正則表達式的最小值和千位分隔符

[英]Regex for number with minimum value and thousand separator

我正在嘗試編寫一個正則表達式來驗證一個只是0或至少為1000的數字,並且還允許使用千位分隔符的逗號。

我得到的最接近的數字可以正確驗證數字部分,但不能驗證千位分隔符。

^(([1-9]{1}[0-9]{3,})|0)$

測試用例:

允許:

0
1000
50000
1,000
50,000
99,992,001

不允許:

00
0001
999
1,1,00
1.000.000
anystring

首先:在對此類東西使用正則表達式之前,請仔細考慮! 正則表達式可能(正確地)看起來像是一個功能強大的工具,但是通過使用它們,您將犧牲一些功能強大的數字處理工具以及代碼的清晰度/可維護性。

但是,如果出於某些原因您想堅持使用正則表達式,那么我認為這將滿足您的要求:

^(0|[1-9]\d{0,2}((\d{3})+|(,\d{3})+))$

它選擇:

  • 要么為零;要么為零。 要么
  • 一個非零數字,然后是最多兩個其他數字,然后是一批數字,每次都是三個或全部用逗號分隔或無。

您可以在這里看到它的工作: http : //regex101.com/r/nG7rL5

這個正則表達式應該工作:

^(?:0|[1-9][0-9]{3,}|[1-9][0-9]{0,2}(?:,[0-9]{3})+)$

工作演示

嘗試:

^(([1-9]\d*(,?\d{3})+)|0)$

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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