簡體   English   中英

Javascript 正則表達式貨幣

[英]Javascript regex currency

我正在嘗試創建一個滿足以下條件的正則表達式:

  1. 0.01 - 真
  2. 01.01 - 假
  3. 122343.10 - 真
  4. 123,432.10 - 假
  5. 第123話
  6. 123423.1 - 假

我做了以下但它沒有按預期工作

^[0\.|1-9\d*\.]\d{2,2}$/

使用https://regexr.com/進行測試

我會使用這個正則表達式:

^(?!0\d)\d+\.\d{2}$

這在開始時使用負前瞻來處理貨幣值不能從零開始的要求,如果緊隨其后的是另一個數字。

演示

這是執行此操作的另一種方法:

^(?:0|[1-9]\d*)\.\d{2}$

這表示匹配一個零,后面沒有小數點,或者 1-9 如果后面的也是小數點之前的另一個數字。

Tim Biegeleisen 比我快了幾分鍾,但這是另一個(不太復雜的)解決方案:

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

https://regex101.com/r/QJ3YyQ/2

編輯:我剛剛意識到我錯過了一個邊緣情況。 如果小數點前的數字包含零,則不匹配。 這是一個更新的正則表達式:

(^[0]|^[1-9]\d*)\.\d{2}$

https://regex101.com/r/QJ3YyQ/4

暫無
暫無

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

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