首页 > 编程语言 >Java 表单注册常用正则表达式验证工具类

Java 表单注册常用正则表达式验证工具类

时间:2023-06-08 19:32:36浏览次数:52  
标签:regex Java String 验证 正则表达式 Pattern 表单 return public


http://springmvc-springdata.iteye.com/blog/2114555

Java 表单注册常用正则表达式验证工具类,常用正则表达式大集合。

1. 电话号码

2. 邮编

3. QQ

4. E-mail

5. 手机号码

6. URL

7. 是否为数字

8. 是否为中文

9. 身份证

10. 域名

11. IP 。。。。

常用验证应有尽有! 这的确是您从事 web 开发,服务器端表单验证之良品!你,值得拥有 ^_^


/*
 * Copyright 2012-2013 The Haohui Network Corporation
 */
package com.haohui.common.utils;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @project baidamei
 * @author cevencheng <[email protected]> www.zuidaima.com
 * @create 2012-11-15 下午4:54:42
 */
public class RegexUtils {

 /**
 * 验证Email
 * @param email email地址,格式:[email protected][email protected],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 移动、联通、电信运营商的号码段
 *<p>移动的号段:134(0-8)、135、136、137、138、139、147(预计用于TD上网卡)
 *、150、151、152、157(TD专用)、158、159、187(未启用)、188(TD专用)</p>
 *<p>联通的号段:130、131、132、155、156(世界风专用)、185(未启用)、186(3g)</p>
 *<p>电信的号段:133、153、180(未启用)、189</p>
 * @return 验证成功返回true,验证失败返回false
 */ 
 public static boolean checkMobile(String mobile) { 
 String regex = "(\\+\\d+)?1[3458]\\d{9}$"; 
 return Pattern.matches(regex,mobile); 
 } 

 /**
 * 验证固定电话号码
 * @param phone 电话号码,格式:国家(地区)电话代码 + 区号(城市代码) + 电话号码,如:+8602085588447
 * <p><b>国家(地区) 代码 :</b>标识电话号码的国家(地区)的标准国家(地区)代码。它包含从 0 到 9 的一位或多位数字,
 * 数字之后是空格分隔的国家(地区)代码。</p>
 * <p><b>区号(城市代码):</b>这可能包含一个或多个从 0 到 9 的数字,地区或城市代码放在圆括号——
 * 对不使用地区或城市代码的国家(地区),则省略该组件。</p>
 * <p><b>电话号码:</b>这包含从 0 到 9 的一个或多个数字 </p>
 * @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 格式
 * @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); 
 } 

 /**
 * <pre>
 * 获取网址 URL 的一级域名
 * http://www.zuidaima.com/share/1550463379442688.htm ->> zuidaima.com
 * </pre>
 * 
 * @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); 
 } 

}

标签:regex,Java,String,验证,正则表达式,Pattern,表单,return,public
From: https://blog.51cto.com/u_16065168/6442464

相关文章

  • 【转载】xsd文件验证xml的java实现
    importjava.io.File;importjava.io.IOException;importjavax.xml.transform.Source;importjavax.xml.transform.stream.StreamSource;importjavax.xml.validation.Schema;importjavax.xml.validation.SchemaFactory;importjavax.xml.validation.Validator;i......
  • 正则表达式
    正则表达式正则表达式就是用一些特殊的符号去筛选想要的数据,简称正则字符组[0123456789][0-9]\d#匹配0到9之间的数字[a-z]#匹配a-z之间的字母[A-Z]#匹配A-Z之间的字母字符.#匹配除换行符之外的任意字符\w#匹配字母、数字、下划线\W......
  • 从零开始学Java之查找算法有哪些?
    前言在前面的两篇文章中,给大家介绍了常见的排序算法,除此之外,其实还有查找算法也需要我们掌握。接下来就来给大家讲讲都有哪些查找算法,以及经典的二分查找法该如何实现。全文大约【3000】字,不说废话,只讲可以让你学到技术、明白原理的纯干货!本文带有丰富的案例及配图视频,让你更......
  • JAVA微信扫码支付模式二功能实现完整例子
    概述本例子实现微信扫码支付模式二的支付功能,应用场景是,web网站微信扫码支付。实现从点击付费按钮、到弹出二维码、到用户用手机微信扫码支付、到手机上用户付费成功、web网页再自动调整到支付成功后的页面,这一个过程。详细一、准备工作先开通微信公众号,再开通微......
  • Java基础——深入了解泛型机制
    ......
  • 01-Java基础语法
    day01_Java基础一、课程目标1.【了解】Java语言发展史             2.【理解】Java语言平台版本3.【理解】Java语言特点4.【理解】JRE与JDK5.【掌握】Java开发环境搭建6.【掌握】第一个Java程序7.【掌握】注释8.【理解】关键字/标识符......
  • 2023春招:Javaweb面试锦囊
    cookie和session的区别?(必会)存储位置不同cookie存放在客户端电脑,是一个磁盘文件。Ie浏览器是可以从文件夹中找到。session是存放在服务器内存中的一个对象。chrome浏览器进行安全处理,只能通过浏览器找到。Session是服务器端会话管理技术,并且session就是cookie实现的。......
  • JAVA 线程池之Callable返回结果
    JAVA线程池之Callable返回结果原文:https://www.cnblogs.com/hapjin/p/7599189.html本文介绍如何向线程池提交任务,并获得任务的执行结果。然后模拟线程池中的线程在执行任务的过程中抛出异常时,该如何处理。一、执行具体任务的线程类要想获得线程的执行结果,需实现Callable接......
  • Java开发工程师学习日记(十)
    1.谈谈Java线程池使用的优势:(1)Java线程池是一定数量的线程集合,线程的频繁创建与销毁消耗了操作系统与内存的大量资源,使用线程池使得减少了线程创建与销毁的资源浪费。(2)使用线程池可以提高程序的响应速度,通过复用已存在的线程,无需等待新线程的创建便能立即执行。(3)进行线程并发数的......
  • Java语言实现生产者与消费者的消息队列模型(附源码)
    Java构建生产者与消费者之间的生产关系模型,可以理解生产者生产message,存放缓存的容器,同时消费者进行消费需求的消耗,如果做一个合理的比喻的话:生产者消费者问题是线程模型中的经典问题。解决生产者/消费者问题有两种方法:一是采用某种机制保护生产者和消费者之间的同步;二是在生产者和......