java 正则表达式 通用校验

本文介绍了正则表达式在验证数据类型、匹配特定字符组合等方面的应用,包括正整数、负整数、整数、正浮点数、负浮点数、浮点数、字母、大写字母、小写字母、字母加数字、字母数字下划线、IP地址、身份证、邮政编码、QQ号、电话号码、账号、网址、Email、首尾空白字符、空白行、中文字符等场景的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


import java.util.regex.Pattern;


public class ValidateUtil {


/**
* 是否为正整数
* @param val
* @return
*/
public static boolean isPositiveInteger(String val) {
Pattern p = Pattern.compile("^[1-9]\\d*$");
return p.matcher(val).matches();


}

/**
* 是否为负整数
* @param val
* @return
*/
public static boolean isNegativeInteger(String val) {
Pattern p = Pattern.compile("^-[1-9]\\d*$");
return p.matcher(val).matches();


}

/**
* 是否为整数
* @param val
* @return
*/
public static boolean isInteger(String val) {
Pattern p = Pattern.compile("^-?[1-9]\\d*$");
return p.matcher(val).matches();


}

/**
* 是否为正浮点数
* @param val
* @return
*/
public static boolean isPositiveFloat(String val) {
Pattern p = Pattern.compile("^-([1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*)$");
return p.matcher(val).matches();


}

/**
* 是否为负浮点数
* @param val
* @return
*/
public static boolean isNegativeFloat(String val) {
Pattern p = Pattern.compile("^-?([1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*|0?\\.0+|0)$");
return p.matcher(val).matches();


}

/**
* 是否为浮点数
* @param val
* @return
*/
public static boolean isFloat(String val) {
Pattern p = Pattern.compile("^[1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*|0?\\.0+|0$");
return p.matcher(val).matches();


}

/**
* 匹配由26个英文字母组成的字符串
* @param val
* @return
*/
public static boolean isLetter(String val) {
Pattern p = Pattern.compile("^[A-Za-z]+$");
return p.matcher(val).matches();


}

/**
* 匹配由26个英文大写字母组成的字符串
* @param val
* @return
*/
public static boolean isUpperLetter(String val) {
Pattern p = Pattern.compile("^[A-Z]+$");
return p.matcher(val).matches();


}

/**
* 匹配由26个英文小写字母组成的字符串
* @param val
* @return
*/
public static boolean isLowerLetter(String val) {
Pattern p = Pattern.compile("^[a-z]+$");
return p.matcher(val).matches();


}

/**
* 匹配由数字和26个英文字母组成的字符串
* @param val
* @return
*/
public static boolean isLetterAndDigital(String val) {
Pattern p = Pattern.compile("^[A-Za-z0-9]+$");
return p.matcher(val).matches();


}

/**
* 匹配由数字、26个英文字母或者下划线组成的字符串
* @param val
* @return
*/
public static boolean isName(String val) {
Pattern p = Pattern.compile("^\\w+$");
return p.matcher(val).matches();


}

/**
* 匹配ip地址
* @param val
* @return
*/
public static boolean isIP(String val) {
Pattern p = Pattern.compile("\\d+\\.\\d+\\.\\d+\\.\\d+");
return p.matcher(val).matches();


}

/**
* 匹配身份证
* @param val
* @return
*/
public static boolean isIDCard(String val) {
Pattern p = Pattern.compile("\\d{15}|\\d{18}");
return p.matcher(val).matches();


}

/**
* 匹配中国邮政编码
* @param val
* @return
*/
public static boolean isZipCode(String val) {
Pattern p = Pattern.compile("[1-9]\\d{5}(?!\\d)");
return p.matcher(val).matches();


}

/**
* 匹配腾讯QQ号
* @param val
* @return
*/
public static boolean isQq(String val) {
Pattern p = Pattern.compile("[1-9][0-9]{4,}");
return p.matcher(val).matches();


}

/**
* 匹配国内电话号码
* @param val
* @return
*/
public static boolean isTel(String val) {
Pattern p = Pattern.compile("\\d{3}-\\d{8}|\\d{4}-\\d{7}");
return p.matcher(val).matches();


}

/**
* 匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线)
* @param val
* @return
*/
public static boolean isAccount(String val) {
Pattern p = Pattern.compile("^[a-zA-Z][a-zA-Z0-9_]{4,15}$");
return p.matcher(val).matches();


}

/**
* 匹配网址URL的正则表达式
* @param val
* @return
*/
public static boolean isUrl(String val) {
Pattern p = Pattern.compile("[a-zA-z]+://[^\\s]*");
return p.matcher(val).matches();


}

/**
* 匹配Email地址的正则表达式
* @param val
* @return
*/
public static boolean isEmail(String val) {
Pattern p = Pattern.compile("\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*");
return p.matcher(val).matches();


}

/**
* 匹配首尾空白字符的正则表达式
* @param val
* @return
*/
public static boolean isBlank(String val) {
Pattern p = Pattern.compile("^\\s*|\\s*$");
return p.matcher(val).matches();


}

/**
* 匹配空白行的正则表达式
* @param val
* @return
*/
public static boolean isBlankLine(String val) {
Pattern p = Pattern.compile("\\n\\s*\\r");
return p.matcher(val).matches();


}

/**
* 匹配中文字符的正则表达式
* @param val
* @return
*/
public static boolean isChiness(String val) {
Pattern p = Pattern.compile("[\u4e00-\u9fa5]");
return p.matcher(val).matches();


}


}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值