日期:2014-05-17  浏览次数:20600 次

JS验证诡异的一幕 求大神指教
最近项目里写的一个手机,方法如下:
JScript code

function checkTelNum(value){
              if(/^13\d{9}$/.exec(value)||(/^147\d{8}$/.exec(value))||(/^15\d{9}$/.exec(value))||(/^18\d{9}$/.exec(value))){ 
        return true; 
    }else{ 
        return false; 
    }
}


很简单的一个验证,没有考虑特别的东西

然后诡异的事情发生了

新增和编辑2个JSP页面里都调用到这个方法

然后新增页面不通过,编辑页面不通过。

服务器使用的是WebSphere,我通过SSH将新增的JSP拿下来,添加了2个alert语句,直接扔回去,新增就正常了。
再用SSH直接拿下来,去掉alert语句,扔回去,也正常了。

然后打增量包,打到另外一个测试环境,依旧是新增不通过,编辑通过。

重复上面的手动修改,直接扔上服务器的方法,就又正常了。

求大神解释。

PS:貌似只有在少数IE6的浏览器会出现这个问题。

------解决方案--------------------
你就把它当作是IE6送给你的神秘礼物吧
------解决方案--------------------
学习了
------解决方案--------------------
验证手机号码,用一个简短的正则就行了啊,何必搞那么麻烦呢,‘或’了那么多。

没事的时候,将那几个式字整合下玩玩。