日期:2014-05-17  浏览次数:21072 次

求可以为负数的正则表达式
我以前是用 @"^[0-9.]+$" 非数字的都可以判断出来,但是问题是负数(-1,-1.11)就验证通不过, 我现在想负整数,负小数也能通过验证,这个正则表达式如何修改呢

------解决方案--------------------
C# code
string strRegexFloat = @"^(?:[1-9][0-9]*\.[0-9]+|0\.(?!0+$)[0-9]+)$";

------解决方案--------------------
string pattern = @"^\-?[0-9]+(\.[0-9]+)?$";
------解决方案--------------------
C# code
^[+-]?([1-9][0-9]*|0)(\.[0-9]+)?%?$
正数,负数,百分数都可以

------解决方案--------------------
@"^[-]?[0-9.]+$"

在你的正则上加上[-]?就可以了
------解决方案--------------------
估计你放在什么控件的Keypress事件里,前面先把“-”过滤了,是不是?如果要解决问题就贴代码吧
------解决方案--------------------
^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
试试这个
------解决方案--------------------
探讨

^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
试试这个