JAVA中的email正则表达式
说到正则表达式,网上有很多的通用的表达式,可是事实上说来,一般人的都 不愿意去拿来研究,就是拿来就直接用就行了.可是,事实上,可能有些时候,项目中或公司里的实际情况不一样,得要修改一下正则表达式的,根据实际情况来定 制,这就需要我们来认真学习正则表达式的一些写法,拿来主义,在让我们享受丰富的网络共享资源的同时,也给我们带来了惰性,关于正则表达式的一些使用情 况,我就不作多介绍,网上有很多的介绍..(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[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 = {"aaa@","aa.b@qq.com","1123@163.com","113fe$@11.com","han. @sohu.com.cn","han.c@sohu.com.cn.cm.cm"};
for (String str:str1){
System.out.println(str+" \\\\. "+str.matches(regex));
}
参考:http://www.cnblogs.com/vs-bug/archive/2010/03/26/1696752.html
发现一个超级好用的百度云盘下载加速器推荐给大家(实测全速下载)
下载地址
百度网盘下载链接:http://t.cn/E77m67z
备用下载地址:http://t.cn/E773Z7u
该工具为永久破解版,免安装,支持windows系统,直接点击运行,然后即可体验飞的下载速度。
再也不用怕百度网盘的限速了,下载速度zei爽,喜欢的老铁拿去!!!
---------------------
作者:老铁老铁
来源:CSDN
原文:https://blog.csdn.net/hanshenquan/article/details/82989164?utm_source=copy
版权声明:本文为博主原创文章,转载请附上博文链接!
JAVA中的email正则表达式的更多相关文章
- Java中常用的正则表达式判断,如IP地址、电话号码、邮箱等
java中我们会常用一些判断如IP.电子邮箱.电话号码的是不是符合,那么我们怎么来判断呢,答案就是利用正则表达式来判断了,因为本人对正则表达式没有太深的研究,所有感兴趣的朋友可以自行百度.我这就给基本 ...
- Java 中 Emoji 的正则表达式
一.emoji 的范围 查阅维基百科中 emoji 的说明 1. 杂项符号及图形 杂项符号及图形一共有768个字符,范围为: U+1F300 - U+1F5FF,在 Java 中正则表达式为: &qu ...
- Java中常用的正则表达式
常用的正则表达式 匹配中文字符的正则表达式: [\u4e00-\u9fa5] 匹配双字节字符(包括汉字在内):[^\x00-\xff] 匹配空行的正则表达式:\n[\s| ]*\r 匹配HTML标记的 ...
- Java中怎么简单的使用正则表达式?
对于正则表达式,我通常的认识就是通过一些陌生的奇怪的符号就可以完成很复杂事件的好帮手!实际上正则表达式确实是这方面的好助手,接下来让我们一起认识一下Java中怎么使用正则表达式吧. 初见Pattern ...
- Java中正则表达式的使用
public class Test{ public static void main(String args[]) { String str="@Shang Hai Hong Qiao Fe ...
- 黑马程序员 Java正则表达式,详解反斜线在Java中的作用
---------------------- ASP.Net+Android+IO开发S. .Net培训.期待与您交流! ---------------------- 在程序设计过程中,经常需要对获取 ...
- (转)Java中使用正则表达式的一个简单例子及常用正则分享
转自:http://www.jb51.net/article/67724.htm 这篇文章主要介绍了Java中使用正则表达式的一个简单例子及常用正则分享,本文用一个验证Email的例子讲解JAVA中如 ...
- JAVA中正则表达式总结
昨天,我的朋友请教我正则表达式.我也好久没有写过正则表达式了,昨天刚好看了下如鹏网创始人杨中科老师关于正则表达式的讲解.使我加深了正则表达式的印像.现我把他总结下: 许多语言,包括Perl.PHP.P ...
- 正则表达式在Java中的使用
目录 介绍 从简单例子认识正则表达式匹配 Java中对正则表达式的支持(各种语言有相应的实现) 初步认识 . + * ? 范围 认识\s \w \d - 下面介绍数字和字母的正则表达, 这是编程中使用 ...
随机推荐
- SpringMvc数据校验@Valid等注解的使用与工具类抽取
最近在重构老项目的代码,发现校验入参占用了很多代码,之前我对这一块的认识局限于使用StringUtils等工具来多个if块进行判断,代码是没什么问题,但是总写这些令人生烦,毕竟写代码也要讲究优雅的嘛, ...
- JavaScript模拟QQ签名(HTML5 contenteditable属性)
例图: 一.思路 1.单击元素时,使元素可以编辑,并获得焦点 2.按下键盘检测用户编辑元素中的文本 3.监听按下Enter键操作或离开可编辑元素焦点时,更新数据库 二.代码 $(function(){ ...
- [转载]Brackets - 强大免费的开源跨平台Web前端开发工具IDE (HTML/CSS/Javascript代码编辑器)
http://brackets.io/ Brackets 是一个免费.开源且跨平台的 HTML/CSS/JavaScript 前端 WEB 集成开发环境 (IDE工具).该项目由 Adobe 创建和维 ...
- Linux - awk 文本处理工具六 - 日志关键字筛选
查看多少行 ? awk '{print NR}' access.log |tail -n1 日期时间筛选检测 awk '/Dec 10/ {print $0}' /opt/mongod/log/mon ...
- vue双向绑定原理分析
当我们学习angular或者vue的时候,其双向绑定为我们开发带来了诸多便捷,今天我们就来分析一下vue双向绑定的原理. 简易vue源码地址:https://github.com/jiangzhenf ...
- [Alg::DP] Square Subsequence
题目如下: #include <iostream> #include <string> #include <vector> using namespace std; ...
- WCF服务安全控制之netTcpBinding的用户名密码验证【转】
选择netTcpBinding WCF的绑定方式比较多,常用的大体有四种: wsHttpBinding basicHttpBinding netTcpBinding wsDualHttpBinding ...
- Pandas DataFrame数据的增、删、改、查
Pandas DataFrame数据的增.删.改.查 https://blog.csdn.net/zhangchuang601/article/details/79583551 #删除列 df_2 = ...
- Selenium2+python自动化62-jenkins持续集成环境搭建【转载】
前言 selenium脚本写完之后,一般是集成到jenkins环境了,方便一键执行. 一.环境准备 小编环境: 1.win10 64位 2.JDK 1.8.0_66 3.tomcat 9.0.0.M4 ...
- 《深入分析JavaWeb技术内幕》学习笔记
第一章 深入Web请求过程 1.1 B/S网站架构概述 HTTP协议采用无状态的短连接的通信方式.通常一次请求就完成一次数据交互,通常也对应一个业务逻辑. 当在浏览器里输入一个URL,首先会请求DNS ...