簡體   English   中英

Angular 中的貨幣正則表達式

[英]Currency regex in Angular

我需要 Angular 中貨幣正則表達式的幫助。 我不太擅長正則表達式。

我想要的是一個正則表達式:

  1. 允許逗號作為數字組分隔符,但不能在開頭或結尾。
  2. 只允許小數點后四舍五入的 2 位數字。
  3. 只允許一個小數點,而不是開頭或結尾。
  4. 不允許 0.00 或 0。

這是我的正則表達式:

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

但是這個正則表達式允許 0.00

任何人在這里請幫助謝謝

期望的輸出

有效的:

1,000.00

1000

0.01

24

1,234,000

11,222,245.22

無效:

,000.00

,,,,,9

0

0.00

1,22,2,

1,000。

123,123,22

000,300.00

000300.00

000,123

000,000

00,000

0,000

您可以使用

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

查看正則表達式演示

細節

  • ^ - 字符串的開頭
  • (?.[0,,]+$) - 如果存在一個或多個0 ,或 ,則匹配失敗的負前瞻. 字符直到字符串結尾
  • (?:0|[1-9]\d{0,2}(?:,\d{3})*|[1-9]\d* - 三種選擇之一:
    • 0 - 零
    • | 或者
    • [1-9]\d{0,2}(?:,\d{3})* - 1 到 3 位數字,第一個非零,然后是 0 次或多次逗號重復,然后是 3 位數字
    • | - 或者
    • [1-9]\d* - 1+ 個數字,第一個非零,
  • (?:\.\d{1,2})? - 的可選序列. 然后是 1 或 2 位數字
  • $ - 字符串結束。

暫無
暫無

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

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