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++写的正则表达式验证工具"利用了Boost库中的`boost::regex`,为C++程序员提供了一个便捷的正则表达式验证平台,有助于他们调试和测试正则表达式,提升开发效率。通过查看源代码,学习者可以深入...
在IT行业中,正则表达式是处理字符串时不可或缺的一部分,尤其在数据验证、文本提取等方面。在这个场景中,我们需要创建一个正则表达式来验证输入是否符合一年12个月份的格式。 首先,我们要明确一年中的12个月份的...
"正则表达式验证器"是一个实用工具,它允许用户输入自定义的正则表达式,并通过提供测试用例来验证该表达式的正确性。 这个验证器特别适用于程序员,他们可能需要在多种不同的编程语言中使用正则表达式,如...
总结,通过上述C#代码,我们可以有效地对用户的邮箱和密码进行正则表达式验证,确保输入数据的准确性和安全性。在实际项目中,还可以根据具体需求调整正则表达式,以适应更复杂的验证规则。此外,为了提高用户体验,...
同时,可以添加`required`属性进行基础的非空验证,以及`pattern`属性来应用自定义的正则表达式验证。 4. **非空验证**: 非空验证是最基本的验证形式,确保用户没有漏掉必填项。HTML5的`required`属性就是一个...
下面是一段JavaScript代码示例,展示如何使用上述正则表达式验证输入: ```javascript function validateAmount(amountStr) { const regex = /^-?[0-9]+(\.[0-9]{1,2})?$/; return regex.test(amountStr); } ...
正则表达式验证工具源码 源码的简单描述: 正则表达式的用途很多,然而对网上公开的正则表达式自己又不知道对不对,有时候自己写的正则表达式也不知道怎么去验证对不对。因此需要一个工具去验证,多验证。出于这个...
"非常好的正则表达式验证工具"正是针对这个需求而设计的,它可以帮助开发者矫正正则表达式的书写,避免错误,提高开发效率。 1. **正则表达式基本概念**: - **字符集**:如`[abc]`,表示匹配a、b或c中的任意一个...
- 数据验证:在表单提交时,可以使用正则表达式验证输入格式,如邮箱、电话号码等。 - 文件搜索:在代码编辑器中,使用正则表达式快速查找和替换特定模式的文本。 - 数据清洗:在数据预处理阶段,正则表达式可以...
在IT领域,正则表达式(Regular Expression,简称regex)是一种强大的文本处理工具,它能够进行复杂的模式匹配、查找、替换等操作。在本话题中,我们将探讨如何使用PowerBuilder 11.5这一经典的开发环境来实现正则...
Java正则表达式验证IP地址 Java正则表达式验证IP地址是指使用Java语言中的正则表达式来验证IP地址是否符合标准。IP地址是指在网络通信中用来标识设备的地址,它是一种逻辑地址,通过它可以找到网络中的设备。在...
- 在描述中提到的两个正则表达式验证器是用于检查和调试正则表达式的实用工具。它们可以帮助开发者确保所写的正则表达式能够按照预期工作。 - 工具通常提供一个输入框,用户可以在其中输入正则表达式和待匹配的...
c#使用正则表达式验证身份证号码,工程完全可以运行,方便大家参考和学习
在VB.NET中,正则表达式(Regular Expression)是一种强大的文本处理工具,它允许程序员通过模式匹配来处理字符串。这个“vb正则表达式实例”很可能是为了帮助开发者测试和理解正则表达式的工作原理而设计的一个应用...
java 使用正则表达式验证电话号码的格式 java 使用正则表达式验证电话号码的格式
一个正则表达式验证格式的方法 你一个可以调用的demo valid(str,tostr) str:字符串 tostr:格式 yy-mm-dd 支持.,/,-三种格式。
本项目提供的“正则表达式验证器”包含源代码,可以帮助开发者在工作中快速验证正则表达式的正确性,同时为学习C#中的正则表达式提供了实践平台。 首先,我们来看正则表达式的基本结构和语法。正则表达式由一系列...
在PowerBuilder中,正则表达式通常用于数据验证、文本处理、搜索和替换等任务,能够提高代码的灵活性和效率。 正则表达式是一种模式匹配语言,它允许开发者用简洁的语法来描述一组字符串的共同特征。在PowerBuilder...