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

大家帮我看一下,怎么一下子JS 里面的test不起作用了,

function chkEmail(obj, mark) {
    var szReg = "/^[A-Za-z0-9]+([-_.][A-Za-z0-9]+)*@([A-Za-z0-9]+[-_.])+[A-Za-z]{2,4}$/";
    alert("初始化参数正常" + obj.value + szReg);

//弹框正常,取值正常,变量字符正常,一个不少,,
//我想帖这么多代码应该得了吧,因为obj.value能取到值啊,
//是不是正则字符出错了?出错也不会不执行吧?最多返回false而已
//但是只执行到这里,下面这句是怎么了,刚做好的时候还可以的,刚今早发现不得了

    if (!szReg.test(obj.value)) {
        alert("判断通过啊");
        document.getElementById(mark).style.color = "red";
        document.getElementById(mark).value = "请输入正确的邮箱!";
        return false;
    }


    alert("执行结束正常");
//道理应该还要显示上面这个提示框的,事实没执行
    return true;
}



javascript 正则

------解决方案--------------------
在if?(!szReg.test(obj.value))前添加alert(szReg.test(obj.value))查看结果
------解决方案--------------------
应该是 if (!szReg.test(obj.value))  这个方法里面了返回为true
------解决方案--------------------
前面说错了 ! 你用 浏览器开发者工具 看看 是否JS脚本报错 
------解决方案--------------------
document.getElementById(mark).style.color?=?"red";

"mark" ?
------解决方案--------------------
看错了,mark是参数

看看是不是mark的值有问题,没有效果不一定是没执行
------解决方案--------------------

var szReg = "/^[A-Za-z0-9]+([-_.][A-Za-z0-9]+)*@([A-Za-z0-9]+[-_.])+[A-Za-z]{2,4}$/";
不要引号啊
加了引号成字符串了
------解决方案--------------------
js里正则不加引号直接用 /表达式/  就行了
------解决方案--------------------
var re=/^[a-z]+\s+\d+$/i; 
       var osVersion="";
       alert(re.test (osVersion ));//True;

看看正则怎么用的 
------解决方案--------------------
http://www.blogjava.net/onejavaer/articles/79070.html