+ -
当前位置:首页 → 问答吧 → 正则表达式的问题

正则表达式的问题

时间:2011-12-13

来源:互联网


  C# code

Regex dy = new Regex(@"^-?\\d+$");   //匹配整数
            if ((int)e.KeyChar == 8) //Backspace键
                return;

            if (!dy.IsMatch(e.KeyChar.ToString())) //匹配整数
            {
                e.Handled = true;
                return;
            }


我想验证输入的为整数,这样写有什么问题吗?每次输入负整数都不行?

作者: xlh776216378   发布时间: 2011-12-13

匹配的是正整数吧?

作者: powerchuangwai   发布时间: 2011-12-13

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
 

作者: z_f_p   发布时间: 2011-12-13

如何匹配整数呢,表达式是什么?

作者: xlh776216378   发布时间: 2011-12-13

按上面写的,我是匹配的整数,但是负整数输入不了

作者: xlh776216378   发布时间: 2011-12-13

顶下再看

作者: wushuai1346   发布时间: 2011-12-13

正则看起来是OK的,你把^和$去掉试试?调试一下,看问题出现在什么地方

作者: wushuai1346   发布时间: 2011-12-13