繁体   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