一个通用的Java正则匹配工具(检查邮箱名、电话号码、用户密码、邮政编码等合法性的工具类)。

一个通用且常用的Java正则匹配工具,用以检查邮箱名、电话号码、用户密码、邮政编码等合法性。

import java.util.regex.Matcher;
import java.util.regex.Pattern;public   class RegexUtils {/*** 验证Email* @param email email地址,格式:zhang@gmail.com,zhang@xxx.com.cn,xxx代表邮件服务商* @return 验证成功返回true,验证失败返回false*/ public static boolean checkEmail(String email) { String regex = "\\w+@\\w+\\.[a-z]+(\\.[a-z]+)?"; return Pattern.matches(regex, email); } /*** 验证身份证号码* @param idCard 居民身份证号码15位或18位,最后一位可能是数字或字母* @return 验证成功返回true,验证失败返回false*/ public static boolean checkIdCard(String idCard) { String regex = "[1-9]\\d{13,16}[a-zA-Z0-9]{1}"; return Pattern.matches(regex,idCard); } /*** 验证手机号码(支持国际格式,+86135xxxx...(中国内地),+00852137xxxx...(中国香港))* @param mobile 移动、联通、电信运营商的号码段*移动的号段:134(0-8)、135、136、137、138、139、147(预计用于TD上网卡)*、150、151、152、157(TD专用)、158、159、187(未启用)、188(TD专用)*联通的号段:130、131、132、155、156(世界风专用)、185(未启用)、186(3g)*电信的号段:133、153、180(未启用)、189* @return 验证成功返回true,验证失败返回false*/ public static boolean checkMobile(String mobile) { String regex = "(\\+\\d+)?1[3458]\\d{9}$"; return Pattern.matches(regex,mobile); } /*** 验证固定电话号码* @param phone 电话号码,格式:国家(地区)电话代码 + 区号(城市代码) + 电话号码,如:+8602085588447* 国家(地区) 代码 :标识电话号码的国家(地区)的标准国家(地区)代码。它包含从 0 到 9 的一位或多位数字,*  数字之后是空格分隔的国家(地区)代码。* 区号(城市代码):这可能包含一个或多个从 0 到 9 的数字,地区或城市代码放在圆括号——* 对不使用地区或城市代码的国家(地区),则省略该组件。* 电话号码:这包含从 0 到 9 的一个或多个数字 * @return 验证成功返回true,验证失败返回false*/ public static boolean checkPhone(String phone) { String regex = "(\\+\\d+)?(\\d{3,4}\\-?)?\\d{7,8}$"; return Pattern.matches(regex, phone); } /*** 验证整数(正整数和负整数)* @param digit 一位或多位0-9之间的整数* @return 验证成功返回true,验证失败返回false*/ public static boolean checkDigit(String digit) { String regex = "\\-?[1-9]\\d+"; return Pattern.matches(regex,digit); } /*** 验证整数和浮点数(正负整数和正负浮点数)* @param decimals 一位或多位0-9之间的浮点数,如:1.23,233.30* @return 验证成功返回true,验证失败返回false*/ public static boolean checkDecimals(String decimals) { String regex = "\\-?[1-9]\\d+(\\.\\d+)?"; return Pattern.matches(regex,decimals); }  /*** 验证空白字符* @param blankSpace 空白字符,包括:空格、\t、\n、\r、\f、\x0B* @return 验证成功返回true,验证失败返回false*/ public static boolean checkBlankSpace(String blankSpace) { String regex = "\\s+"; return Pattern.matches(regex,blankSpace); } /*** 验证中文* @param chinese 中文字符* @return 验证成功返回true,验证失败返回false*/ public static boolean checkChinese(String chinese) { String regex = "^[\u4E00-\u9FA5]+$"; return Pattern.matches(regex,chinese); } /*** 验证日期(年月日)* @param birthday 日期,格式:1992-09-03,或1992.09.03* @return 验证成功返回true,验证失败返回false*/ public static boolean checkBirthday(String birthday) { String regex = "[1-9]{4}([-./])\\d{1,2}\\1\\d{1,2}"; return Pattern.matches(regex,birthday); } /*** 验证URL地址* @param url 格式:http://blog.csdn.net:80/xyang81/article/details/7705960? 或 http://www.csdn.net:80* @return 验证成功返回true,验证失败返回false*/ public static boolean checkURL(String url) { String regex = "(https?://(w{3}\\.)?)?\\w+\\.\\w+(\\.[a-zA-Z]+)*(:\\d{1,5})?(/\\w*)*(\\??(.+=.*)?(&.+=.*)?)?"; return Pattern.matches(regex, url); } /***      * 获取网址 URL 的一级域名* http://detail.tmall.com/item.htm?spm=a230r.1.10.44.1xpDSH&id=15453106243&_u=f4ve1uq1092 ->> tmall.com* * * @param url* @return*/public static String getDomain(String url) {Pattern p = Pattern.compile("(?<=http://|\\.)[^.]*?\\.(com|cn|net|org|biz|info|cc|tv)", Pattern.CASE_INSENSITIVE);// 获取完整的域名// Pattern p=Pattern.compile("[^//]*?\\.(com|cn|net|org|biz|info|cc|tv)", Pattern.CASE_INSENSITIVE);Matcher matcher = p.matcher(url);matcher.find();return matcher.group();}/*** 匹配中国邮政编码* @param postcode 邮政编码* @return 验证成功返回true,验证失败返回false*/ public static boolean checkPostcode(String postcode) { String regex = "[1-9]\\d{5}"; return Pattern.matches(regex, postcode); } /*** 匹配IP地址(简单匹配,格式,如:192.168.1.1,127.0.0.1,没有匹配IP段的大小)* @param ipAddress IPv4标准地址* @return 验证成功返回true,验证失败返回false*/ public static boolean checkIpAddress(String ipAddress) { String regex = "[1-9](\\d{1,2})?\\.(0|([1-9](\\d{1,2})?))\\.(0|([1-9](\\d{1,2})?))\\.(0|([1-9](\\d{1,2})?))"; return Pattern.matches(regex, ipAddress); } //是否包含 . 号public static boolean checkContainsDot(String username) { return   username.contains(".");} //是否包含连词符public static boolean checkContainsHyphen(String username) { return username.contains("-");}//密码长度 6-20public static boolean checkUserPasswordLength(String pwd) { return pwd.length() > 5 && pwd.length() <21;}public static boolean isValidUserName(String un) { String regex = "([A-Z0-9a-z-]|[\\u4e00-\\u9fa5])+";return Pattern.matches(regex, un); }
}


一个通用的Java正则匹配工具(检查邮箱名、电话号码、用户密码、邮政编码等合法性的工具类)相关推荐

  1. java 正则 空白字符_关于JAVA正则匹配空白字符的问题

    今天遇到一个字符串,怎么匹配空格都不成功!!! 我把空格复制到test.properties文件 显示"\u3000" ,这是什么? 这是全角空格!!! 查了一下    \s   ...

  2. java正则匹配table_js正则匹配table tr

    js正则匹配table tr 我觉得比ijao简单,但是脑子就是转不过弯....请正则高手看看阿. 复制代码 代码如下: title title2 data1 data2       data1 da ...

  3. Java正则匹配提取年月日字符串

    Java正则匹配提取年月日字符串 String string1="9999-9-99";Pattern p = Pattern.compile("(\\d{4})-(\\ ...

  4. Java正则匹配 以某个汉字开头和结束

    Java正则匹配 以某个汉字开头和结束 Java代码示意: public static void main(String[] args) {String str = "正则匹配测试" ...

  5. Python练习篇25-re模块利用正则匹配提取网页邮箱并保存

    本文介绍re模块利用正则匹配提取网页邮箱并保存 提取网页邮箱我们需要用到requests模块.re模块和xlwt模块(下载方法:打开cmd,输入pip install 包名),负责去匹配邮箱数据. 本 ...

  6. java正则匹配英文句号_「正则表达式」王国奇遇记

    第一回 初来乍到 NPC: "欢迎来到正则表达式的国度,勇士!这里的每一个人都使用正则表达式,我是这里的 NPC,每一个来到这里的人都将由我代为介绍正则世界的规则,至于能领悟到何种境界,就看 ...

  7. java 正则匹配括号是否成对_十分钟学会正则表达式

    正则表达式用处挺广的,主要用于处理字符串. 正则引擎 想要在计算机语言中使用正则表达式,那么这门计算机语言必须要利用正则引擎去实现相应的正则库.主要的正则引擎分为以下两类: DFA 确定性的状态机.不 ...

  8. Java正则匹配淘口令

    Java淘口令正则匹配,网上找了一些发现已经过时了就重新写了一个! 更新时间2022/10/27 /*淘口令匹配规则一用于匹配类似¥ CZ0001 EqHxdal4zdb¥和¥d6zbdalW0vw¥ ...

  9. java 半角空格_关于JAVA正则匹配空白字符的问题(全角空格与半角空格)

    今天遇到一个字符串,怎么匹配空格都不成功!!! 我把空格复制到test.properties文件 显示"\u3000" ,这是什么? 这是全角空格!!! 查了一下    \s   ...

最新文章

  1. 【组队学习】【30期】7. CV中的Transformer
  2. 【转载】学习嵌入式系统需要具备的条件、方法及步骤
  3. numpy归一化_使用numpy 高效实现K-Means聚类
  4. activiti web流程设计器 整合视频 教程 SSM和独立部署的方式
  5. 在Linux的Windows子系统上(WSL)使用Docker(Ubuntu)
  6. 用Java解析:您可以使用的所有工具和库
  7. 对JavaFX Mobile应用程序进行性能分析
  8. [转载]MyISAM InnoDB 区别
  9. TSC打印机标签纸出纸位置调整方法
  10. 22计算机408考研—数据结构—排序(详解加例题)
  11. 杭州电子科技大学ACM-1096
  12. 用计算机弹奏天下,天下手游大荒怪题答题器 大荒怪题题库及答案大全
  13. 数字签名和电子签名有什么不一样?
  14. rpm安装mysql8(通过脚本快速配置)
  15. Impala: Reducing query concurrency or configuring admission control may help avoid this error
  16. HTTP服务器中keep-alive 与 url常见问题
  17. ArcGIS提取影像或栅格数据边界
  18. 办公套件Office LTSC 2021中文
  19. Centos7 ping网络提示connect:Network is unreachable
  20. 国内常用且有效的NTP服务器地址及IP(2016年2月)

热门文章

  1. [读书笔记]《我是一只IT小小鸟》
  2. CCF认证2014032-窗口
  3. intellij idea 17.15完美破解
  4. UniCode与非UniCode的区别
  5. FacetGrid与调色盘-Seaborn样式风格设置-调色盘设置
  6. jieba 的Tokenizer分词器
  7. 泛型总结(通俗易懂)
  8. [js点滴]JavaScript之文档事件08
  9. Call to undefined method Illuminate\Database\Query\Builder::trashed()
  10. 第11課 受付の人は親切でした