dealry 发表于 2008-3-25 22:03

email正则表达式匹配问题

<script language=javascript>
        function testtt(){
                var reg_email = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/g;                                                var mes="";
                if( ! reg_email.test( "dealry@gmail.com" ) ){                                                                                mes = "EMail不合要求";
                        }
                alert(mes);
        }
</script>
<div onclick="testtt()">test</div>

上面的代码能运行,就是点击第二次的时候就提示“EMail不合要求”不知道是什么问题?不知有哪位能赐教

jalonlovesja 发表于 2008-3-26 09:33

var Email = /\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
我用的邮箱表达示是这个了,你看看这个可以不???
function Check()
{
var Email = /\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
if(!Email.exec(document.getElementById("txtEmail").value))
{
   alert('你输入的邮箱不合法!');
   this.form1.txtEmail.foucs();
    return false;
}
return true;
}
这样验证也可以的。

dealry 发表于 2008-3-26 15:35

谢谢

可以了,多谢 jalonlovesja的指点,呵呵。
差别就是最后那个g,这个具体有什么作用呢?

渚薰 发表于 2008-3-27 09:02

你的代码,我测试没有出现第二次就会不行的情况
g表示全局匹配,不加g只匹配一次(字符串左边开始最近的那个)
上述两个正则表达式,没有本质的区别,你的不仅多了g还多了^$的字符串边界限定

页: [1]

编程论坛