[英]create regex to accept blank/space or decimal value
我想在c#中創建正則表達式,對於具有空白/空格/ null的值或具有2個小數點的十進制值返回true。所以不接受除此之外的其他內容。
雖然可能不是最有效的,但這個正則表達式應該做你想要的:
^((\d+[\.]\d{2})|([\.]\d{2})|()|\s*)$
它要求任何十進制數都有兩個小數位,但它確實接受0.99或.99作為示例。
如果你想允許用戶輸入9或9.0或9.01(也就是說,不強迫用戶輸入兩位小數),你可以像這樣修改上面的內容:
^((\d+([\.]\d{0,2})*)|([\.]\d{0,2})|()|\s*)$
它只是將量詞設置為{0,2}而不是{2},並使小數位的存在可選。
^\s*(?:[+-]?\d*\.\d{2})?\s*$
匹配一個帶有兩個小數位的數字,可選地用空格包圍,或者只用空/空白字符串。
使用這個正則表達式^(\\s+)|(([+-])?\\d+[,\\.]\\d{2})|()|(null)$
我會建議這種模式來處理數字和空字符串場景。
^[-+]?\d*(\.\d{2})?|\s*$
重寫NULL
,我經歷過當我們在RegEx中傳遞null
作為輸入時它會拋出ArgumentNullException
。 所以我的建議是使用!=
運算符通過與null
匹配來驗證NULL
:
if(str != null && RegEx.IsMatch(str,@"^[-+]?\d*(\.\d{2})?|\s*$"))
// valid data
哪里:
str =包含數據驗證的字符串
上面的圖案也將允許:-.00或-0.00作為驗證小數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.