南风

邮箱正则表达式
前言 关于评论部分自动解析头像,只要输入邮箱后就会判断输入的是否是正确的邮箱格式,如果正确则自动获...
扫描右侧二维码阅读全文
01
2019/05

邮箱正则表达式

前言
关于评论部分自动解析头像,只要输入邮箱后就会判断输入的是否是正确的邮箱格式,如果正确则自动获取头像,如果不正确则不获取。判断这部分想都不用想,当然是用正则啦,所以,我到网上搜了一下邮箱的正则,然后呢 基本大家都Po出了这一条正则:
/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/
这条正则也没错,只能说不够完美,基本来讲也是正确的,因为当我输入 im.gemai@gmail.com 时,却不能获取头像了(就是说那条正则说我的邮箱格式不正确),为什么呢?因为im后面的那个“.”,这就是问题所在。虽然够用,但是一有问题我就堵得慌,但是我又不会写正则,于是我就开始寻找解决方法。

解决方法

开始在网上寻找很久也没找到一条完美的正则,后来 我突然想到 Typecho本身在评论的时候就会验证 “邮箱” “网址”输入是否正确,应该也是用正则去判断的,接着我就开始翻源码,终于在/var/Typecho/Validate.php找到了。Typecho官方验证邮箱格式是否正确的正则是:

/^[_a-z0-9-\.]+@([-a-z0-9]+\.)+[a-z]{2,}$/i
嗯,替换了一下正则,测试没问题,完美解决(或许吧)
Last modification:May 1st, 2019 at 12:19 pm

Leave a Comment

8 comments

  1. 张琪小仙女

    ^[_a-zA-Z0-9-.]+@([-a-zA-Z0-9]+.)+[a-z]{2,}$

    帮你补充一下,这样有的邮箱大写也可以验证

    1. Shadow
      @张琪小仙女

      无疑是大佬一枚

      1. 张琪小仙女
        @Shadow

        不是呀,只是刚好也在验证邮箱,用了你的正则发现有点问题ヾ(≧∇≦*)ゝ

        1. Shadow
          @张琪小仙女

          我现在用的模板自带

          1. 张琪小仙女
            @Shadow

            我只是刚好在写邮箱验证,因为我的邮箱有大写小写字母还有数字和“-”、“.”,域名是三个词所以就改了一下

    2. 张琪小仙女
      @张琪小仙女

      ^[a-zA-Z0-9-.]+@([-a-zA-Z0-9]+.)+[a-zA-Z0-9-]{1,}$

      1. 张琪小仙女
        @张琪小仙女

        ^[a-zA-Z0-9-.]+@([-a-zA-Z0-9]+.)+[a-zA-Z0-9-]{2,}$

        1. 王硕
          @张琪小仙女

          let reg = new RegExp(/^[_a-zA-Z0-9-.]+@([-a-zA-Z0-9]+.)+[a-z]{2,}$/);
          console.log(reg.test('lijhedjeuf@1390233cdcfvf.corr'))