我要做一个TextBox,不允许空输入,而且只能输入整数,只能用.net的验证控件,如果用RangeValidator和RequiredFieldValidator控件,那ErrorMessage的显示在页面上很难看,所以希望那位高手可以提供一个正则表达式可以只用RegularExpressionValidator来验证
整数是有范围的-2147483648 至 2147483647

解决方案 »

  1.   

    范围用RangeValidator控件进行验证。
    是否数字的正则表达式用"^-?\\d+$"。
      

  2.   

    好像不行,只能验证输入的是数字,但是我输入20个9,也能通过,但是20个9是数字,但是已经超过Int的范围,而且对于空输入没有控制
      

  3.   

    范围用RangeValidator控件进行验证。
    正解
      

  4.   

    hy_lihuan() ( ) 信誉:98    Blog  2006-12-13 09:46:25  得分: 0  
     
     
       正则表达式可以控制范围吗?
      
     
    ==============
    麻烦
      

  5.   

    其实用RangeValidator控件就可以验正是否为整数和范围了,不用什么正则表达式
      

  6.   

    RegularExpressionValidator 不能验证空.即使正则表达示中不充许为空,当为空时还是可以通过,
    可以加一个RequireField的验证控件.
      

  7.   

    至于很难看.这两个控件每次只有一个能显示errmsg所以和一个占用的长度是一样的.
      

  8.   

    这个问题我想解决办法是不用正则控件,而是使用自定义验证控件
    指定它的ValidateEmptyText属性为真,指定ClientValidationFunction为客户端验证方法比如cv
    然后批定客户端验证方法来实现
     <script type="text/javascript">
        function cv(src, arg){
            //使用自定义验证控件
            var o=arg.Value;
            //必须输入
            if(o==''){
                arg.IsValid=false;
            }
            else if(/^-?\d+$/.test(o)){
            //正则验证
                if(o/1 > 2147483647 || o/1 < -2147483648){
                    //范围验证
                    arg.IsValid=false;
                }
                else{
                    //三个检查全部通过
                    arg.IsValid=true;
                }
            }
            else{
                //正则没有通过
                arg.IsValid=false;
            }
            
        }
        </script>
      

  9.   

    RegularExpressionValidator 不能验证空.即使正则表达示中不充许为空,当为空时还是可以通过,
    可以加一个RequireField的验证控件.
      

  10.   

    先判断下不就OK了if textbox1.text!=""
      if IsNumeric(textBox1.text) //IsNumeric 是VB.NET中的一个系统函数
        if  -2147483648 <Convert.ToInt32(textbox1.text)<2147483647 
          if Regex.IsMatch(textbox1.text,(@"^-?\d+$") then
             Response.Write("OK");
          else
             Response.Write("Failed,ErrType1");else
     Response.Write("Failed,ErrType2");
      

  11.   

    给你个全的:"^\d+$"  //非负整数...... 
    "^\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+)?$"  //浮点数 
    "^\d+$"  //非负整数...... 
    "^\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+)?$"  //浮点数   匹配中文字符的正则表达式: [\u4e00-\u9fa5]
      
      匹配双字节字符(包括汉字在内):[^\x00-\xff]
      
      应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
      
      String.prototype.len=function(){return this.replace([^\x00-\xff]/g,"aa").length;}
      
      匹配空行的正则表达式:
      [\s| ]*\r
      
      匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*) \/>/ 
      
      匹配首尾空格的正则表达式:(^\s*)|(\s*$)
      
      应用:javascript中没有像vbscript那样的trim函数,我们就可以利用这个表达式来实现,如下:
      
      String.prototype.trim = function()
      {
          return this.replace(/(^\s*)|(\s*$)/g, "");
      }
      
      利用正则表达式分解和转换IP地址:
      
      下面是利用正则表达式匹配IP地址,并将IP地址转换成对应数值的javascript程序:
      
      function IP2V(ip)
      {
      re=/(\d+)\.(\d+)\.(\d+)\.(\d+)/g  //匹配IP地址的正则表达式
      if(re.test(ip))
      {
      return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1
      }
      else
      {
      throw new Error("Not a valid IP address!")
      }
      }
      
      不过上面的程序如果不用正则表达式,而直接用split函数来分解可能更简单,程序如下:
      
      var ip="10.100.20.168"
      ip=ip.split(".")
      alert("IP值是:"+(ip[0]*255*255*255+ip[1]*255*255+ip[2]*255+ip[3]*1))
      
      匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
      
      匹配网址URL的正则表达式:http://( [\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
      
      得用正则表达式从URL地址中提取文件名的javascript程序,如下结果为page1
      
      s="http://www.9499.net/page1.htm"; 
      s=s.replace(/(.*\/){0,}([^\.]+).*/ig,"$2")
      alert(s)
      
      利用正则表达式限制网页表单里的文本框输入内容:
      
      用正则表达式限制只能输入中文:onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))"
      
      用正则表达式限制只能输入全角字符: onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))"
      
      用正则表达式限制只能输入数字:onkeyup="value=value.replace(/[^\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
      
      用正则表达式限制只能输入数字和英文:onkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
      
      正则表达式,正规表达式,正则表达式匹配,正则表达式语法,模式匹配,正规表达式匹配 javascript正则表达式 ASP正则表达式 ASP.NET正则表达式 C#正则表达式 JSP正则表达式 PHP正则表达式 VB.NET正则表达式 VBSCript正则表达式编程 delphi正则表达式 jscript
      

  12.   

    命名空间:Microsoft.VisualBasic
    程序集:Microsoft.VisualBasic(在 microsoft.visualbasic.dll 中)语法
    Visual Basic(声明) 
    Public Shared Function IsNumeric ( _
    Expression As Object _
    ) As Boolean
     
    Visual Basic(用法) 
    Dim Expression As Object
    Dim returnValue As BooleanreturnValue = Information.IsNumeric(Expression)
     
    C# 
    public static bool IsNumeric (
    Object Expression
    )
     
    C++ 
    public:
    static bool IsNumeric (
    Object^ Expression
    )
     
    J# 
    public static boolean IsNumeric (
    Object Expression
    )
     
    JScript 
    public static function IsNumeric (
    Expression : Object
    ) : boolean
     
    参数
    Expression
    必选。Object 表达式。返回值
    返回一个 Boolean 值,指示表达式的计算结果是否为数字。 
    备注
    有关详细信息,请参见 Visual Basic 主题 IsNumeric 函数 (Visual Basic)。如果 Expression 的数据类型为 Boolean、Byte、Decimal、Double、Integer、Long、SByte、Short、Single、UInteger、ULong 或 UShort,则 IsNumeric 返回 True。如果 Expression 是可以成功转换为数字的 Char、String 或 Object,则它也将返回 True。如果 Expression 的数据类型为 Date,则 IsNumeric 返回 False。如果 Expression 是无法成功转换为数字的 Char、String 或 Object,则它也将返回 False
      

  13.   

    呵呵 这个网上有很多的`
    搜索下 就有你想要的了``------------------------------------------------------------------------------------------
    此群以后只讨论嵌入式相关,关于高级语言设计的朋友们,请加高级语言(VB,VC,Delphi,.NET等)程序设计群:21991228
    谢谢合作
      

  14.   

    RangedValidate DataType = integer 即可
      

  15.   

    <asp:RangeValidator ID="RangeValidator1" runat="server" ControlToValidate="txtCostTime"
            ErrorMessage="Cost time must be 0 to 24." MaximumValue="24" MinimumValue="0"
            Type="Integer">*</asp:RangeValidator>
      

  16.   

    用正则表达式控制输入的是否为数字,在text控件有一个属性:maxlength ,可以控制 输入的数字的长度,比如:5。就只能输入5个9了。