簡體   English   中英

創建正則表達式以接受空格/空格或十進制值

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

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