Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 569|回复: 0

[默认分类] email正则表达式

[复制链接]
  • TA的每日心情
    开心
    2021-12-13 21:45
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    发表于 2018-7-6 11:09:50 | 显示全部楼层 |阅读模式
    说到正则表达式,网上有很多的通用的表达式,可是事实上说来,一般人的都 不愿意去拿来研究,就是拿来就直接用就行了.可是,事实上,可能有些时候,项目中或公司里的实际情况不一样,得要修改一下正则表达式的,根据实际情况来定 制,这就需要我们来认真学习正则表达式的一些写法,拿来主义,在让我们享受丰富的网络共享资源的同时,也给我们带来了惰性,关于正则表达式的一些使用情 况,我就不作多介绍,网上有很多的介绍..(
    http://blog.sina.com.cn/s/blog_4c925dca01009h1a.html
    正则表达式的一些基本用法)
         前段时间,阿堂在项目中就要对email进行验正..允许输入多个email,以;来分隔,然后,在页面 表单中提交时,进行验正,是单个邮件还是多个邮件,是否正确.关于是多个邮件,还是单个邮件我就不多说了,是多个时,只需要用split(";")来生成 一个数组,然后循环对每个email判断是否正确的email格式就行了.这不是阿堂要谈论的重点,我这里只想说明一下,我这里要验正的情况..
        一般的email,形如zhangshan@163.com,abc@sina.com.cn这样一些常用的形式就行了,但是在我们公司的一些客户中邮箱却有一些zhangshna.Mr@163.com,abc_Wang.dd@sian.com,abc_Wang.dd.cc@sian.com这 种类似的形式,在@符号之前还有点.,原来是拿来就用,可是现在就不行,得自己研究正则的用法了
        朋友们,如有正则表达式方面的问题,欢迎在此留言交流讨论!
    原来的正则表达式
    /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/;
    我根据我的实际情况修改后的正则表达式
    /^(\w)+(\.\w+)*@(\w)+((\.\w{2,3}){1,3})$/;
    或者
    /^(\w)+(\.\w+)*@(\w)+((\.\w+)+)$/;
      
    字符描述:
    ^ :匹配输入的开始位置。
    \:将下一个字符标记为特殊字符或字面值。
    * :匹配前一个字符零次或几次。
    + :匹配前一个字符一次或多次。
    (pattern) 与模式匹配并记住匹配。
    x|y:匹配 x 或 y。
    [a-z] :表示某个范围内的字符。与指定区间内的任何字符匹配。
    \w :与任何单词字符匹配,包括下划线。
    {n,m} 最少匹配 n 次且最多匹配 m 次
    $ :匹配输入的结尾。
      
    附一简单的js

      function checkEmail()
      {
       var emailValue=document. getElementById_r("email").value;
       if (!isEmail(emailValue))
       {
        alert("您输入的邮箱有误,请重新核对后再输入!");
        document. getElementById_r("email").focus();
        return false;
       }
       return true;
      }
      
      function isEmail(str){
            var reg = /^(\w)+(\.\w+)*@(\w)+((\.\w+)+)$/;
            return reg.test(str);
        }

    阿堂也附上了输入多个邮件时的验正方法
      
    //验正邮箱格式要正确 20080602_heyitang
      var email=document. getElementById_r("trans_email").value;
      //如果,用户入了邮箱才需要进行判断
    if (email!=null)
      {if (email.indexOf(";")==-1)
       {
         if(!isEmail(email))
         {
           alert("您输入的单个邮件格式有误,请重新核对后再输入");
           document. getElementById_r("trans_email").focus();
           return false;
         }
       }
       else
       {
         var emailArray=email.split(";");
         for(i=0;i<emailArray.length;i++)
         {
          //这里防止出现heyitang@qq.com;heyitang@163.com;;多加了;这时候,数组中可能有元素没有内容
          if(emailArray!=null || emailArray!="")
          {
            if(!isEmail(emailArray))
            {
             alert("您输入的多个邮箱格式中有邮箱格式不 正确,请重新核对后再输入");
             document. getElementById_r("trans_email").focus();
             return false;
            }
          }
      }
       }
         }
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-3-29 20:20 , Processed in 0.487459 second(s), 46 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表