如果你只是验证这个范围内的正整数的话,这个本来就行了呀:var valid = /\+?[2-2147483647]/g.test(value);

解决方案 »

  1.   


    我在截个图吧,如下:
    这个是JS里面验证1~65535之间的正整数的,可以用,没问题,就按照这样写就行,现在只是范围扩大了,现在是1~2147483647之间的正整数,大家知道怎么去改吗,是不是也要向上图所示,写一大串正则表达式我大概明白楼主的意思了,这个代码用来判断输入的数字是否在1-65535之间,代码的思路是这样的:输入的如果是4(或者小于4)位数,会匹配到第一个/^(1-9)\d{0,3}/,一定是满足条件的,如果是5位数,就要判断:万位不大于6,如果万位为6,则千位不大于5,如果千位为5,则百位不大于5,依此类推;
    所以你要解决的问题可以按照这个来类推,这种方式是将数字作为字符串来处理;
    另外,js支持的最大数远大于你说的2147483647,可以试试直接用大于、小于、等于来比较数值大小,判断输入数的范围
      

  2.   


    我在截个图吧,如下:
    这个是JS里面验证1~65535之间的正整数的,可以用,没问题,就按照这样写就行,现在只是范围扩大了,现在是1~2147483647之间的正整数,大家知道怎么去改吗,是不是也要向上图所示,写一大串正则表达式我大概明白楼主的意思了,这个代码用来判断输入的数字是否在1-65535之间,代码的思路是这样的:输入的如果是4(或者小于4)位数,会匹配到第一个/^(1-9)\d{0,3}/,一定是满足条件的,如果是5位数,就要判断:万位不大于6,如果万位为6,则千位不大于5,如果千位为5,则百位不大于5,依此类推;
    所以你要解决的问题可以按照这个来类推,这种方式是将数字作为字符串来处理;
    另外,js支持的最大数远大于你说的2147483647,可以试试直接用大于、小于、等于来比较数值大小,判断输入数的范围哎,终于有人理解这意思了,谢谢,我就是类推不出来,才请教各位帮忙的,上面截图的那段正则表达式也是自己写的,所以类推不出来,大家帮帮忙
      

  3.   


    jQuery.validator.addMethod("points",function(value,element)
    {
        var tel = /(^[1-9]\d{0,8}$) | (^1\d{9}$) | (^21[0-3]\d{7}$) | (^214[0-6]\d{6}$) | (^2147[0-3]\d{5}$) | (^21474[0-7]\d{4}$) | (^214748[0-2]\d{3}$) | (^2147483[0-5]\d{2}$) | (^21474836[0-3]\d{1}$) | (^214748364[0-6]$)/;
    }
    你试试看
      

  4.   

    不行的,我试了下,不过已经有人帮忙解决了,是这样的:
    希望对大家有帮助,结贴这个解决方法:将输入字符串转换为number,然后调用toString(2)转换为2进制字符串刚好是31个1,因为2进制都是0和1,方便匹配,所以正则才可以写的那么简单,如果不是31个1,比如中间有几个0,写起来就麻烦了