JavaScript 正则表达式之email匹配

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})$/

    参考文章


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部