在JAVA中的email正则表达式

说到正则表达式,网上有很多的通用的表达式,可是事实上说来,一般人的都 不愿意去拿来研究,就是拿来就直接用就行了.可是,事实上,可能有些时候,项目中或公司里的实际情况不一样,得要修改一下正则表达式的,根据实际情况来定 制,这就需要我们来认真学习正则表达式的一些写法,拿来主义,在让我们享受丰富的网络共享资源的同时,也给我们带来了惰性,关于正则表达式的一些使用情 况,我就不作多介绍,网上有很多的介绍..(http://blog.sina.com.cn/s/blog_4c925dca01009h1a.html 正则表达式的一些基本用法)

前段时间,阿堂在项目中就要对email进行验正..允许输入多个email,以;来分隔,然后,在页面 表单中提交时,进行验正,是单个邮件还是多个邮件,是否正确.关于是多个邮件,还是单个邮件我就不多说了,是多个时,只需要用split(";")来生成 一个数组,然后循环对每个email判断是否正确的email格式就行了.这不是阿堂要谈论的重点,我这里只想说明一下,我这里要验正的情况..

一般的email,形如[email protected],[email protected]这样一些常用的形式就行了,但是在我们公司的一些客户中邮箱却有一些[email protected],[email protected],[email protected]这 种类似的形式,在@符号之前还有点.,原来是拿来就用,可是现在就不行,得自己研究正则的用法了

朋友们,如有正则表达式方面的问题,欢迎在此留言交流讨论!

原来的正则表达式

/^[a-zA-Z0-9_-][email protected][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++)
    {
     //这里防止出现[email protected];[email protected];;多加了;这时候,数组中可能有元素没有内容
     if(emailArray[i]!=null || emailArray[i]!="")
     {
       if(!isEmail(emailArray[i]))
       {
        alert("您输入的多个邮箱格式中有邮箱格式不 正确,请重新核对后再输入");
        document. getElementById_r("trans_email").focus();
        return false;
       }
     }
 }
  }
    }

在JAVA中为:

String regex = "\\w+(\\.\\w)*@\\w+(\\.\\w{2,3}){1,3}"; String[] str1 = {"[email protected]","[email protected]","[email protected]","[email protected]","han. @sohu.com.cn","[email protected]"}; for (String str:str1){     System.out.println(str+" \\\\. "+str.matches(regex)); }

参考:http://www.cnblogs.com/vs-bug/archive/2010/03/26/1696752.html
时间: 2024-11-05 21:02:35

在JAVA中的email正则表达式的相关文章

Java语言学习(6)-Java中封装类(正则表达式操作类)

java中封装的正则表达式 Java封装了正则表达式处理的类,在java.util.regex包中.主要包含如下三个类: 1) Pattern类 Pattern类是对一个正则表达式的编译表示. Pattern类没有公共构造函数.要创建一个Pattern对象,必须制定一个正则表达式,通过调用器公共静态编译方法,返回一个Pattern对象.样例: Patternr=Pattern.compile(""(1*)(a+)(.*)""); 2) Matcher类 Matche

Java中常用的正则表达式判断,如IP地址、电话号码、邮箱等

java中我们会常用一些判断如IP.电子邮箱.电话号码的是不是符合,那么我们怎么来判断呢,答案就是利用正则表达式来判断了,因为本人对正则表达式没有太深的研究,所有感兴趣的朋友可以自行百度.我这就给基本的判断,废话不多说,下面就是上代码. IP地址的判断方法 public static boolean orIp(String ip) { if (ip == null || "".equals(ip)) return false; String regex = "^(1\\d{2

java 中的正则表达式

一. 什么是正则表达式? 正则表达式是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”).模式描述在搜索文本时要匹配的一个或多个字符串. 二.正则表达式语法参考: https://msdn.microsoft.com/zh-cn/library/ae5bf541(VS.80).aspx.    三.  正则表达式规则的例子: /^(/d{3}-|/d{4}-)?(/d{8}|/d{7})?$/    //国内电话 /^[1-9]*[1-9][0-9]*$/  

JAVA中正则表达式总结

一.正则表达式基础知识 1.1 句点符号        假设你在玩英文拼字游戏,想要找出三个字母的单词,而且这些单词必须以“t”字母开头,以“n”字母结束.另外,假设有一本英文字典,你可以用正则表达式搜索它的全部内容.要构造出这个正则表达式,你可以使用一个通配符——句点符号“.”.这样,完整的表达式就是“t.n”,它匹配“tan”.“ten”.“tin”和“ton”,还匹配“t#n”.“tpn”甚至“t n”,还有其他许多无意义的组合.这是因为句点符号匹配所有字符,包括空格.Tab字符甚至换行符

Java中正则表达式的使用

在Java中,我们为了查找某个给定字符串中是否有需要查找的某个字符或者子字串.或者对字符串进行分割.或者对字符串一些字符进行替换/删除,一般会通过if-else.for 的配合使用来实现这些功能 .如下所示: Java代码   public class Test{ public static void main(String args[]) { String str="@Shang Hai Hong Qiao Fei Ji Chang"; boolean rs = false; for

js和java中正则表达式的易混淆点

js中正则表达式的使用 对表单中的值进行正则表达式匹配一般有两种方法: var reg = new RegExp(regStr); reg.test(value); 如下: var reg = new RegExp("\\d{3}"); reg.test("abc123def"); 结果:true 注:new RegExp中传的是正则表达式的字符串,\需要用\转义. str.match(regex);      如"abc123def".matc

java中正则表达式基本用法

正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字模式,它 用以描述在查找文字主体时待匹配的一个或多个字符串.正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配. 众所周知,在程序开发中,难免会遇到需要匹配.查找.替换.判断字符串的情况发生,而这些情况有时又比较复杂,如果用纯编码方式解决,往往会浪费程序员的时间及精力.因此,学习及使用正则表达式,便成了解决这一矛盾的主要手段. 大家都知道,正则表达式是一种可以

JAVA中正则表达式总结(详解及用途)

许多语言,包括Perl.PHP.Python.JavaScript和JScript,都支持用正则表达式处理文本,一些文本编辑器用正则表达式实现高级"搜索-替换"功能.所以JAVA语言也不例外.正则表达式已经超出了某种语言或某个系统的局限,成为被人们广为使用的工具,我们完全可以用它来解决实际开发中碰到的一些实际的问题. 在JDK1.3及之前的JDK版本中并没有包含正则表达式的类,如果要在Java中使用正则表达式必须使用第三方提供的正则表达式库,最有名的就是Jakarta-ORO,Jaka

java中正则表达式基本用法(转)

https://www.cnblogs.com/xhj123/p/6032683.html 正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字模式,它 用以描述在查找文字主体时待匹配的一个或多个字符串.正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配. 众所周知,在程序开发中,难免会遇到需要匹配.查找.替换.判断字符串的情况发生,而这些情况有时又比较复杂,如果用纯编码方式解决,往往会浪费程序员的时间及精力.