簡體   English   中英

用於C#中十進制數字驗證的正則表達式

[英]Regex for decimal number validation in C#

我需要允許正負范圍小數的正則表達式

.89-10000.000300 ,......

我的正則表達式是^\\d*\\.?\\d*

問題是,當您輸入$ ,!之類的特殊字符時! *然后接受這些字符。

代替正則表達式,我將使用decimal.Parse進行解析,並使用AllowDecimalPointAllowLeadingSign樣式以及具有的區域性. NumberDecimalSeparator一樣,如InvariantCulture

var d = decimal.Parse("-.89", 
                      NumberStyles.AllowDecimalPoint | NumberStyles.AllowLeadingSign, 
                      CultureInfo.InvariantCulture);

這捕獲了您提到的所有需求。

您錯過了反斜線! 在正則表達式中,單個點具有不同的含義。

public static bool IsValidDecimal()
{
    string input = "132456789"
    Match m = Regex.Match(input, @"^-?\d*\.?\d+");
    return m.Success && m.Value != "";
}

如果您熱衷於使用regex ,則可以執行以下操作:

^-?[0-9]*\.?[0-9]+$

觀看現場演示

暫無
暫無

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

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