JavaScript 正则表达式之email匹配

本文详细介绍了使用JavaScript正则表达式进行电子邮件地址匹配的方法。包括基本格式、名称和域名部分的构成元素,提供了完整的正则表达式,并通过测试代码验证了其正确性。最后,针对中文字符和域名长度进行了正则表达式的优化。

JavaScript 正则表达式之email匹配

  • email 基本格式 ( 名称@域名
    • 名称部分可以由若干字母、数字、中划线-、下划线_、点号. 组成,所以名称部分的正则表达式可以用 [0-9a-zA-Z_\.\-\]+
    • 域名部分同样可以由若干字母、数字、中划线-、下划线_、点号.组成,而域名的结尾则是以点号.连接的若干大小写字母,其正则表达式为 [0-9a-zA-Z_\.\-\]+\.([a-zA-Z])+
    • 完整的email正则表达式
      /^([0-9a-zA-Z_\.\-\])+\@([0-9a-zA-Z_\.\-\])+\.([a-zA-Z]+)$/
  • 测试

    测试代码:

    var pattern = /^([0-9a-zA-Z_\.\-\])+\@([0-9a-zA-Z_\.\-\])+\.([a-zA-Z]+)$/;
    console.log("pattern.test('cn42du@163.com') = " + pattern.test('cn42du@163.com'));
    console.log("pattern.test('ifat3_-.@42du.cn') = " + pattern.test('ifat3_-.@42du.cn'));
    console.log("pattern.test('ifat.@du.sddjcn') = " + pattern.test('ifat.@du.sddjcn'));
    

    测试结果:

    pattern.test(‘cn42du@163.com’) = true
    pattern.test(‘ifat3_-.@42du.cn’) = true
    pattern.test(‘ifat.@du.sddjcn’) = true

  • 优化
    • 名称中可能含有中文[\u4e00-\u9fa5]
    • 域名结尾处最长可为8位 {2,8}
    • 优化后的正则表达式
      /^([0-9a-zA-Z_\.\-\u4e00-\u9fa5])+\@([0-9a-zA-Z_\.\-\])+\.([a-zA-Z]{2,8})$/

    参考文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值