美文网首页
匹配邮箱

匹配邮箱

作者: 码课sir | 来源:发表于2018-07-22 23:03 被阅读0次

先说出常见的邮箱号格式:

2345234@qq.com

534@163.com

gdf5334@gmail.com

gdf53gsdf@yoo.com.cn

wanggdfgdwei2@itcast.cn

观察特点

1、@左边:可以是字母数字下划线,甚至特殊符号-也有,可以出现一次或更多次
2、@:一定有@特殊符号
3、@右边:其中qq. 、163. 当成一个整体来匹配,其中yoo邮箱有yoo. 和com. ,说明这个整体可以出现多次
4、最后只能是字母


分析
图形化

代码如下(注意下文说明)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    
</body>
<script type="text/javascript">
    //邮箱正则
    var reg2 = /^[0-9a-zA-Z_-]+\@(?:[0-9a-zA-Z_-]+\.)+[a-zA-Z]{2,6}$/;
    console.log(reg2.test('64653465@qq.com')); // true
    console.log(reg2.test('187_111-222@163.com')); // true
    console.log(reg2.test('gsfgs@yoo.com.cn')); // false
    console.log(reg2.test('gsdfs@itcast.cn')); // false
</script>
</html>
结果图
注意:由于上面正则括号的内容我们只是当成一个整体来匹配,但是后续没有引入它,为了优化,不让匹配的内容进入正则缓冲区,在括号前面加个?:来进行优化 。

var reg = /^[0-9a-zA-Z_-]+@(?:[0-9a-zA-Z_]+.)+[a-zA-Z]{2,6}$/


图形化

非捕获组,外层就不会有个虚线框包裹着
注意:

1、在正则字符组[]中的特殊字符可以不用转义,如[-_+@.]

2、因为+代表前面的规则可以出现一次或多次,如果写在字符组[]中,就是匹配一个+符号。

建议不要把+写在字符组的最后面,会出现错误。

相关文章

网友评论

      本文标题:匹配邮箱

      本文链接:https://www.haomeiwen.com/subject/jtnrmftx.html