使用正则表达式验证电子邮件地址

时间:2012-07-02 13:31:17

标签: javascript

我正在尝试验证我网站上的电子邮件地址,并且我一直在尝试编写一个关于电子邮件验证如何与JavaScript一起使用的演示。我要做的是将用户输入的电子邮件地址的值传递给validateEmail函数,然后在div中打印出'valid'或'invalid',其id为'result'。因为我对JavaScript比较陌生,所以我不知道如何实现这个目标,并且想知道是否有人可以向我展示如何做到这一点的一个例子?

<head>
<title>Practice</title>

<script type="text/javascript">
function validateEmail(email) { 
    var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
    return re.test(email);
} 
</script>
</head>
<body>
    <form action="post" method="practice.php">
        e-mail: <input id="email" type="text" onblur="validateEmail(execute(document.getElementById('email').value))" />
        <div id="result"></div>
    </form>
</body>

1 个答案:

答案 0 :(得分:1)

首先,您不需要使用execute方法,可以从value上下文获取this

validateEmail( this.value )

然后修改您的功能以打印结果:

function validateEmail(email) { 
    var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
    if(re.test(email)) {
        document.getElementById('result').innerHTML = 'valid';
    } else {
        document.getElementById('result').innerHTML = 'invalid';
    }
}