日期:2014-05-16  浏览次数:20473 次

关于JS验证的问题,大侠们帮忙看看
这项目框架的验证全部写在一个JS里面,下面是我对这个JS里面的一小段截图:

这个图上是邮件内容的验证,
现在我想验证大于等于1,小于等于2147483647的正整数的验证,应该怎么写?


------解决方案--------------------
如果你只是验证这个范围内的正整数的话,这个本来就行了呀:

var valid = /\+?[2-2147483647]/g.test(value);

------解决方案--------------------
引用:
Quote: 引用:

楼主贴的代码是验证邮件内容中所有字符的总长度是否超过254,验证前将中文字符转换为#,一个中文字符对应两个##,然后判断转换后的字符总长度;
不清楚楼主说的验证正数范围是什么意思?正数本来可以直接用大于小于等于来判断的


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

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]$)/;
}
你试试看