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

Validating an e-mail address using regex

本文关键字:电子邮件地址 验证 正则表达式      更新时间:2023-09-26

我正在尝试验证我网站上的电子邮件地址,并且我一直在尝试编写一个演示,说明电子邮件验证如何与JavaScript一起使用。我正在尝试做的是将用户输入的电子邮件地址的值传递给validateEmail函数,然后在div中打印出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>
首先,

您不需要使用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';
    }
}