正则表达式学习:案例5--正则邮箱验证

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
    </style>
</head>
<body>

<form>
    <span>邮箱:</span>
    <input type="text" id="num">
    <input type="submit" value="正则验证" onclick="check()">
</form>


<script>

/*
* 验证邮箱是否合法:
* 邮箱的一般格式为:名称@域名。

 我们这里需要匹配的邮箱中名称可以包含汉字、字母、数字,域名只允许为英文和数字。

 例如:张三[email protected]

 邮件名称部分:

 汉字在正则中表示为[\u4e00-\u9fa5]
 字母和数字表示为A-Za-z0-9
 因此邮件名称部分的正则表达式整理如下:
 [A-Za-z0-9\u4e00-\u9fa5]+
 邮件域名部分:

 一般域名的规律为“[N级域名][三级域名.]二级域名.顶级域名”,比如“qq.com”、“www.qq.com”、“mp.weixin.qq.com”、“12-34.com.cn”,分析可得域名类似“xx .xx .xx .xx”组成。

 “xx”部分可以表示为[a-zA-Z0-9_-]+
 “.xx”部分可以表示为\.[a-zA-Z0-9_-]+
 多个“.xx”可以表示为(\.[a-zA-Z0-9_-]+)+
 得出域名部分的表达式为[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+。

 我们综合上面两部分得出最终表达式:
 ^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$
* */



    function check() {
        var str= document.getElementById("num").value;

        var reg =/^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/;
        var boo = reg.test(str);

        if(boo){
           alert("格式正确!");

        }else{
            alert("格式不正确!");
        }

    }


    
</script>

</body>
</html>

猜你喜欢

转载自blog.csdn.net/qq_32584661/article/details/80761608
今日推荐