簡體   English   中英

驗證C#中的貨幣格式

[英]Validate currency format in C#

我想驗證一個字符串是否滿足以下貨幣格式(最多4個小數位)並且可以允許逗號, 無論其區域性如何),並且逗號可以放在標准習慣的位置

例如:

2,000,000(valid)  
200000.0000(valid)  
200 (valid)  
200.00000(invalid)

怎么做?

您可以根據需要進行正則Regex匹配。

下面的正則Regex適用於您的特定示例。 但是,它會接受逗號,在隨機的地方。 演示在這里。

^\d+(\,\d+)*(\.\d{1,4})?$

更好的正則Regex如下。 檢查演示 基地正則表達式取自這個職位。

^\$?(\d{1,3},(\d{3},)*\d{3}|\d+)(.\d{1,4})?$

更新資料

要回答以上評論,正則Regex允許0090 試試這個。 演示在這里

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

更新2

C#用法

var currencyString = "1,234,456.7890";
var regex = @"^((([1-9]\d{0,2},(\d{3},)*\d{3}|[1-9]\d*)(.\d{1,4})?)|(0\.\d{1,4}))$";
var isValidCurency = Regex.IsMatch(currencyString, regex);

更新3

按照OP,逗號,在任何地方允許的。 在此處通過演示更新了Regex

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

更新4

使用這個。 演示這里

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

好吧, :)

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

暫無
暫無

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

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