有的时候会遇到字符串提交到后台处理的情况,这时候,就需要通过正则去验证字符串是否合法和可用的,绿峰整理出了一个封装起来的小方法,虽然不算太完善,但终究是个方法。
/**
* 静态封装类
*/
public class Constraint {
//注意:反斜线属于转义字符,故这里的反斜线是一对的
private static final String IS_NUM = "^[0-9]*$"; //001.验证只能是0到9
private static final String IS_JUST_NUMBER = "^\\+?[1-9][0-9]*$"; //002.非0正整数
private static final String IS_COUNT_NUMBER = "^\\d{n}$"; //003.只能输入n位数字
private static final String IS_MIN_NUMBER = "^\\d{n,}$"; //004.最少n长度的字符串
private static final String IS_ONLY_CHN = "^[\\u4e00-\\u9fa5]{0,}$"; //005.只能输入汉字
//000.总方法 in:约束名,被约束字符串
private static boolean ck(String ckName,String inputStr){
Pattern pat = Pattern.compile(ckName);
Matcher mat = pat.matcher(inputStr);
return mat.matches();
}
//001.只能是0到9
public static boolean ckOnlyNum(String InputNumber){
return ck(IS_NUM,InputNumber);
}
//002.只能是大于0的正整数
public static boolean ckJustNum(String InputNumber){
return ck(IS_JUST_NUMBER,InputNumber);
}
//003.只能输入固定长度的数字串 in:长度,数字串
public static boolean ckCountNum(int count,String inputNumber){
String cks = IS_COUNT_NUMBER.replace("n",count+""); //替换
return ck(cks,inputNumber);
}
//004.只能输入大于等于n位的数字串
public static boolean ckMinCount(int minCount,String inputNumber){
String cks = IS_MIN_NUMBER.replace("n",minCount+""); //替换
return ck(cks,inputNumber);
}
//005.只能是汉字
public static boolean ckChnChar(String inputStr){
return ck(IS_ONLY_CHN,inputStr);
}
//a.去全部空格
public static String delSpaceAll(String str){
return StringUtils.deleteWhitespace(str);
}
//b.去首尾空格
public static String delSpace(String str){
return str.trim();
}
}
然后这么去调用……
public class Test {
public static void main(String[] args){
// System.out.println(Constraint.ckOnlyNum("0123456789"));
// System.out.println(Constraint.ckJustNum("123456789"));
// System.out.println(Constraint.ckCountNum(3,"333"));
// System.out.println(Constraint.ckMinCount(2,"01"));
// System.out.println(Constraint.ckChnChar("中华人民共和国"));
//如果有空格
String str = Constraint.delSpaceAll(" 中华 人 民共和 国 "); //去除所有空格
System.out.println(Constraint.ckChnChar(str));
}
}
特殊鸣谢校验规则正则的那篇文章
java后台常用正则表达式,大家可以尝试尝试这篇文章的其他校验规则。咱通过正则去校验邮箱和链接地址就会报错,大家知道为什么的欢迎下面留言。。