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