package com.cs.common.util;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @author
*
*/
public class RegExCheckUtil {
/**
* 身份证校验位
*/
public static String[] CHECK_DIGIT={"1","0","X","9","8","7","6","5","4","3","2"};
/**
* 身份证加权因子
*/
public static int[] gene={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1};
/**
* 判断是否为email
* @param email
* @return 是email返回true; 不是email返回false
*/
public static boolean isEmail(String email)
{
if(email==null||email.equals(""))return false;
Pattern pattern = Pattern.compile("^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$");
Matcher isMail = pattern.matcher(email);
return isMail.matches();
}
/**
* 判断字符串是否为数字
* @param email
* @return 是数字返回true; 不是数字返回false
*/
public static boolean isNum(String num)
{
if(num==null ||num.equals(""))return false;
Pattern pattern = Pattern.compile("[0-9]*");
Matcher isNum = pattern.matcher(num);
return isNum.matches();
}
/**
* 判断是否为手机号
*/
public static boolean isMobile(String mo)
{
if(mo==null||mo.equals(""))return false;
Pattern pattern=Pattern.compile("^1[35]\\d{9}$");
Matcher isMobile=pattern.matcher(mo);
return isMobile.matches();
}
/**
* 判断是否为身份证号^(\d{15}|(\d{17}[xX\d]))$
*/
public static boolean isIdentityCard(String card)
{
// if(card==null||card.equals(""))return false;
// if(card.length()!=15&&card.length()!=18)return false;
// Pattern pattern=Pattern.compile("^(\\d{15}|(\\d{17}[xX\\d]))$");
// Matcher isIdentityCard=pattern.matcher(card);
// return isIdentityCard.matches();
if(card==null||card.equals(""))return false;
if(card.length()!=15&&card.length()!=18)return false;
Pattern pattern=Pattern.compile("^(\\d{15}|(\\d{17}[xX\\d]))$");
Matcher isIdentityCard=pattern.matcher(card);
if(!isIdentityCard.matches()) return false;
if(card.length()==18)
{
int yearPrefix=Integer.parseInt(card.substring(6,8));
if(yearPrefix<19||yearPrefix>21)return false;//出生日期必须大于1900年小于2100年
int month=Integer.parseInt(card.substring(10,12));
if(month>12||month==0)return false; //验证月
int day=Integer.parseInt(card.substring(12,14));
if(day>31||day==0)return false; //验证日
String checkDigit=getCheckDigitFor18(card);
if(checkDigit.equals("-1"))return false;
if(checkDigit.equals(card.substring(17,18).toUpperCase()))
{
return true;
}else
{
return false;
}
}else if(card.length()==15)
{
int month=Integer.parseInt(card.substring(8,10));
if(month>12||month==0)return false; //验证月
int day=Integer.parseInt(card.substring(10,12));
if(day>31||day==0)return false;
return true;
}
return false;
}
private static String getCheckDigitFor18(String card)
{
if(card==null||card.equals(""))return "-1";
int sum=0;
for(int i=0;i<17;i++)
{
sum+=Integer.parseInt(card.substring(i,i+1))*gene[i];
}
return CHECK_DIGIT[sum%11];
}
/**
* 判断电话号码是否为国内手机号码<br>
* 系统判断客户是国内手机用户(主叫号码前缀为13/15/18的11位有效数字)<br>
*
* @param phoneNo
* 电话号码
* @return
*/
public static boolean isChinaPhoneNo(String phoneNo) {
phoneNo = phoneNo.trim();
if (phoneNo.length() < 11) {
return false;
} else {
phoneNo = phoneNo.substring(phoneNo.length() - 11);
String regEx = "^(13|15|18)\\d{9}$";
Pattern pattern = Pattern.compile(regEx);
Matcher matcher = pattern.matcher(phoneNo);
return matcher.matches();
}
}
}
分享到:
相关推荐
正则表达式验证工具 V1.0 本软件主要用于检测正则表达式是否正确。 运行环境:本软件为绿色软件,无需安装,但需要Microsoft .NET Framework 4 支持,如果没有请前去下载(下载路径:...
正则表达式正则表达式正则表达式正则表达式 验证程序
正则表达式验证金额格式
邮箱及密码的正则表达式验证(C#)
正则表达式验证工具源码 源码的简单描述: 正则表达式的用途很多,然而对网上公开的正则表达式自己又不知道对不对,有时候自己写的正则表达式也不知道怎么去验证对不对。因此需要一个工具去验证,多验证。出于这个...
使用vs2008写的一个正则表达式验证工具,附带源码,供使用c++写正则表达式参考使用,使用boost_1_54 regex库。
java 使用正则表达式验证电话号码的格式 java 使用正则表达式验证电话号码的格式
c#使用正则表达式验证身份证号码,工程完全可以运行,方便大家参考和学习
使用正则表达式验证一年的12个月份,程序完全可以运行,方便大家调试开发
jq非空验证,为空的时候input后面加红色字体的用户名不能为空。 js正则表达式验证邮箱和手机号码,验证邮箱必须含有@符,手机号码必须1开头并且固定11个字符
一个正则表达式验证格式的方法 你一个可以调用的demo valid(str,tostr) str:字符串 tostr:格式 yy-mm-dd 支持.,/,-三种格式。
本文实例讲述了微信小程序实现简单input正则表达式验证功能。分享给大家供大家参考,具体如下: 1、效果展示 2、关键代码 index.wxml文件 <input placeholder="输入内容" bindinput="check"></input> ...
正则表达式验证格式
使用正则表达式验证中文汉字输入,程序完全可以运行调试,方便大家参考
如果你曾经用过Perl或任何其他内建正则表达式支持的语言,你一定知道用正则表达式处理文本和匹配模式是多么简单。如果你不熟悉这个术语,那么“正则表达式”(Regular Expression)就是一个字符构成的串,它定义了一...
正则表达式 学习 全收集 chm pdf 正则表达式验证工具 exe正则表达式 学习 全收集 chm pdf 正则表达式验证工具 exe正则表达式 学习 全收集 chm pdf 正则表达式验证工具 exe正则表达式 学习 全收集 chm pdf 正则表达式...
C#,VS2010,利用正则表达式验证网址(url),
使用正则表达式来判断用户输入的IP地址格式是否正确
本程序实现了对正则表达式的验证、收藏、备注修改、对界面皮肤的切换、导出Excal、导出文本文件、打开所有类型的文件......系统:正则表达式验证工具; 作者:Terry;版权:Terry; 最后,祝:工作愉快!谢谢!
全自动正则表达式验证工具