使用正则表达式验证积累
import com.jaydenxiao.common.commonutils.StringUtils;import java.util.regex.Matcher;
import java.util.regex.Pattern;/*** * 使用正则表达式验证输入格式*/
public class RegexValidateUtil {/*** 仅中文*/public static final String REG_CHINESE = "^[\\u4E00-\\u9FA5\\uF900-\\uFA2D]+$";/*** 整数*/public static final String REG_INTEGER = "^-?[1-9]\\d*$";/*** 数字*/public static final String REG_NUMBER = "^([+-]?)\\d*\\.?\\d+$";/*** 正整数*/public static final String REG_INTEGER_POS = "^[1-9]\\d*$";/*** 浮点数*/public static final String REG_FLOAT = "^([+-]?)\\d*\\.\\d+$";/*** 正浮点数*/public static final String REG_FLOAT_POS = "^[1-9]\\d*.\\d*|0.\\d*[1-9]\\d*$";/*** 是否为正整数数字,包括0(00,01非数字)*/public static final String REG_INTEGER_WITH_ZERO_POS = "^(([0-9])|([1-9]([0-9]+)))$";/*** 是否为整数数字,包括正、负整数,包括0(00,01非数字)*/public static final String REG_NUMBER_WITH_ZERO = "^((-)?(([0-9])|([1-9]([0-9]+))))$";/*** 是否为数字字符串*/public static final String REG_NUMBER_TEXT = "^([0-9]+)$";/*** 数字(整数、0、浮点数),可以判断是否金额,也可以是负数*/public static final String REG_NUMBER_ALL = "^((-)?(([0-9])|([1-9][0-9]+))(\\.([0-9]+))?)$";/*** 数字和点号*/public static final String REG_POINT_NUMBER = "[\\d.]";/*** * @Description: 判断手机号,1开头的11为数*/public static boolean phoneNumberValid(String phoneNumber) {Pattern pattern = Pattern.compile("^1[0-9]{10}$");Matcher m = pattern.matcher(phoneNumber);return m.matches();}/*** 正则表达式校验,符合返回True* @param regex 正则表达式* @param content 校验的内容* @return*/public static boolean isMatch(String regex, CharSequence content){return Pattern.matches(regex, content);}/*** 判断是否全部大写字母* @param str* @return*/public static boolean isUpperCase(String str){if(StringUtils.isEmpty(str)){return false;}String reg = "^[A-Z]$";return isMatch(reg,str);}/*** 判断是否全部小写字母* @param str* @return*/public static boolean isLowercase(String str){if(StringUtils.isEmpty(str)){return false;}String reg = "^[a-z]$";return isMatch(reg,str);}/*** 判断是否为数字字符串,如0011,10101,01* @param str* @return*/public static boolean isNumberText(String str){if(StringUtils.isEmpty(str)){return false;}return isNumberText(str, REG_NUMBER_TEXT);}/*** 判断是否为数字字符串* @param str* @param regexStr 规则* @return*/public static boolean isNumberText(String str, String regexStr){if(StringUtils.isEmpty(str)){return false;}return isMatch(regexStr, str);}/*** 判断是否为含数字点号字符串,如0011,10101,01* @param str* @return*/public static boolean isRegPointNumberText(String str){if(StringUtils.isEmpty(str)){return false;}return isMatch(REG_POINT_NUMBER, str);}/*** 判断所有类型的数字,数字(整数、0、浮点数),可以判断是否金额,也可以是负数* @param str* @return*/public static boolean isNumberAll(String str){if(StringUtils.isEmpty(str)){return false;}return isMatch(REG_NUMBER_ALL, str);}/*** 是否为正整数数字,包括0(00,01非数字)* @param str* @return*/public static boolean isIntegerWithZeroPos(String str){if(StringUtils.isEmpty(str)){return false;}return isMatch(REG_INTEGER_WITH_ZERO_POS, str);}/*** 是否为整数,包括正、负整数,包括0(00,01非数字)* @param str* @return*/public static boolean isIntegerWithZero(String str){if(StringUtils.isEmpty(str)){return false;}return isMatch(REG_NUMBER_WITH_ZERO, str);}/*** 把字符串数字类型的所有数字取出来* @param str* <li>"1-000我10123我60#0" 》 100010123600</li>* <li>"00010-+123我600" 》 00010123600</li>* <li>"我是2024我600" 》 2024600</li>* <li>"我是20 -24我 600" 》 2024600</li>* @return*/public static String getNumberText(String str){return getNumberText(str, "");}public static String getNumberText(String str, String defaultNum){if(StringUtils.isBlank(str)){return defaultNum;}StringBuffer number = new StringBuffer("");String[] strArray = str.split("");for (String string : strArray) {if(!StringUtils.isBlank(string) && isNumberText(string)){number.append(string);}}return number.toString();}/*** 把字符串数字点号类型的所有数字和点号取出来* @param str* <li>"1-0.9.00我10123我60#0" 》 10.9.0010123600</li>* <li>"V1.0.3" 》 1.0.3</li>* @return*/public static String getRegPointNumberText(String str){return getRegPointNumberText(str, "");}public static String getRegPointNumberText(String str, String defaultPointNum){if(StringUtils.isBlank(str)){return defaultPointNum;}StringBuffer number = new StringBuffer("");String[] strArray = str.split("");for (String string : strArray) {if(!StringUtils.isBlank(string) && isRegPointNumberText(string)){number.append(string);}}return number.toString();}/*** <p>* Description: [用正则表达式来判断一个 URL 是否已有参数]* <p>** @param url* @return boolean** ${tags}*/public static boolean hasParameters(String url) {// 正则表达式匹配 URL 中是否有参数String regex = "\\?.*$";return Pattern.compile(regex).matcher(url).find();}
}