正则表达式的问题 Regex dy = new Regex(@"^-?\\d+$"); //匹配整数 if ((int)e.KeyChar == 8) //Backspace键 return; if (!dy.IsMatch(e.KeyChar.ToString())) //匹配整数 { e.Handled = true; return; }我想验证输入的为整数,这样写有什么问题吗?每次输入负整数都不行? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1:"^\\d+$" //非负整数(正整数 + 0) "^[0-9]*[1-9][0-9]*$" //正整数 "^((-\\d+)|(0+))$" //非正整数(负整数 + 0) "^-[0-9]*[1-9][0-9]*$" //负整数 "^-?\\d+$" //整数 "^\\d+(\\.\\d+)?$" //非负浮点数(正浮点数 + 0) "^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$" //正浮点数 "^((-\\d+(\\.\\d+)?)|(0+(\\.0+)?))$" //非正浮点数(负浮点数 + 0) "^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$" //负浮点数 "^(-?\\d+)(\\.\\d+)?$" //浮点数使用方法: var r = /^\+?[1-9][0-9]*$/; //正整数 r.test(str);2: JS整数相加首先保证输入的都是数字 nText1=parseFloat(document.all.text1.value); nText2=parseFloat(document.all.text2.value); nSum=nText1+nText2 Regex dy = new Regex(@"^-?\d+$"); 其实问题并不在于正则表达式上,而是你所触发的事件所至,你要等全部输入完成之后才去验证,而不是键盘按下事件,这样的话,每次输入-号时,都会触发,而单一的-号对于这个正则表达式来说是匹配失败,从而导致,负整数输入不成功不修改事件的做法就是将Regex dy = new Regex(@"^-?\\d+$"); ==》Regex dy = new Regex(@"^-?\\d*$"); windows服务,进程占有内存越来越大 有关Silverlight的问题 。。。 如何在跳转页面的时候清理缓存 有关串口的关闭 [求助]由窗口句柄获得程序路径与时间信息 基础知识忘完了,弱弱的疑问,关于接口,大家别见笑~ C#的WinForm程序脱离了开发环境运行不了,大家帮忙。 关于dataset与datatable的最基础问题,请兄弟们帮忙。 关于windows服务的一个问题,急切等待,特别奇怪 两个问题 Winform 打包的问题 在c#窗体程序中怎样控制只能打开一个窗口
"^[0-9]*[1-9][0-9]*$" //正整数
"^((-\\d+)|(0+))$" //非正整数(负整数 + 0)
"^-[0-9]*[1-9][0-9]*$" //负整数
"^-?\\d+$" //整数
"^\\d+(\\.\\d+)?$" //非负浮点数(正浮点数 + 0)
"^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$" //正浮点数
"^((-\\d+(\\.\\d+)?)|(0+(\\.0+)?))$" //非正浮点数(负浮点数 + 0)
"^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$" //负浮点数
"^(-?\\d+)(\\.\\d+)?$" //浮点数使用方法: var r = /^\+?[1-9][0-9]*$/; //正整数
r.test(str);2: JS整数相加首先保证输入的都是数字 nText1=parseFloat(document.all.text1.value);
nText2=parseFloat(document.all.text2.value);
nSum=nText1+nText2
Regex dy = new Regex(@"^-?\\d*$");