加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

常用正则表达式

发布时间:2020-12-13 19:35:14 所属栏目:百科 来源:网络整理
导读:用来在后台验证输入是否符合格式,以防范Javascript Injection和XSS,在网上查了很久,然后自己按要求做了些修改,做过一些验证都可以通过,但是不能确保验证全面。 import java.util.regex.Matcher;import java.util.regex.Pattern;public class RegExPatte

用来在后台验证输入是否符合格式,以防范Javascript Injection和XSS,在网上查了很久,然后自己按要求做了些修改,做过一些验证都可以通过,但是不能确保验证全面。

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegExPattern {
	public static boolean validateName(String input){
		Pattern name = Pattern.compile("[a-zA-Z]{1,20}");  //1-20个大小写字母
		Matcher m = name.matcher(input);
		return m.matches();
	}

	public static boolean validatePassword(String input){
		Pattern password = Pattern.compile("[a-zA-Z0-9]{6,20}"); //6-20个大小写字母和数字,这个可以确保没有这三种类型之外的字符出现,但是不能保证每类字符至少出现一次。每类至少一次的验证在另一个方法里做的。
		Matcher m = password.matcher(input);
		return m.matches();
	}
	
	public static boolean validateAddress(String input){
		if(input.replaceAll(" ","").length() == 0){
			return false;
		}
		Pattern address = Pattern.compile("[a-zA-Z0-9 ]{1,100}");  //1-100个大小写字母和数字
		Matcher m = address.matcher(input);
		return m.matches();
	}

	public static boolean validateSsn(String input){
		Pattern ssn = Pattern.compile("[0-9]{9}");  //9个数字
		Matcher m = ssn.matcher(input);
		return m.matches();
	}

	public static boolean validateTelephone(String input){
		Pattern telephone = Pattern.compile("[0-9]{10}");  //10个数字
		Matcher m = telephone.matcher(input);
		return m.matches();
	}

	public static boolean validateAccountID(String input){
		Pattern accountID = Pattern.compile("[0-9]{12}");  //12个数字
		Matcher m = accountID.matcher(input);
		return m.matches();
	}

	public static boolean validateOTP(String input){
		Pattern otp = Pattern.compile("[0-9]{8}");  //8个数字
		Matcher m = otp.matcher(input);
		return m.matches();
	}

	public static boolean validateCaptcha(String input){
		Pattern captcha = Pattern.compile("[a-zA-Z0-9]{6}");  //6个数字、大小写字母
		Matcher m = captcha.matcher(input);
		return m.matches();
	}

	public static boolean validateAmount(String input){
		Pattern amount = Pattern.compile("(([1-9]{1}d*)|([0]{1}))(.(d){1,2})?$");  //金额,精确到小数点后两位小数
		Matcher m = amount.matcher(input);
		return m.matches();
	}
	
	public static boolean validateEmail(String input){
		if(input.length() > 50)
			return false;
		Pattern email = Pattern.compile("^s*w+(?:.{0,1}[w-]+)*@[a-zA-Z0-9]+(?:[-.][a-zA-Z0-9]+)*.[a-zA-Z]+s*$"); //Email
		Matcher m = email.matcher(input);
		return m.matches();
	}
	
	public static boolean validateStrID(String input){
		Pattern strID = Pattern.compile("[a-z]{2}[a-z]*[1-9]+[0-9]*");   //名首字母+姓+排序
		Matcher m = strID.matcher(input);
		return m.matches();
	}
	
	public static boolean validateDobYear(String input){
		Pattern dobYear = Pattern.compile("[0-9]{4}"); //年 YYYY
		Matcher m = dobYear.matcher(input);
		if(m.matches()){
			int year = Integer.valueOf(input);
			if(year >= 1900 && year <= 2013)
				return true;
		}
		return false;
	}
	
	public static boolean validateDobDay(String input){
		Pattern dobDay = Pattern.compile("[0-3]?[0-9]{1}");  //日 DD或D
		Matcher m = dobDay.matcher(input);
		if(m.matches()){
			int day = Integer.valueOf(input);
			if(day >= 1 && day <= 31)
				return true;
		}
		return false;
	}
	
	public static boolean validateDobMonth(String input){
		Pattern dobMonth = Pattern.compile("[01]?[0-9]{1}");  //月 MM或M
		Matcher m = dobMonth.matcher(input);
		if(m.matches()){
			int month = Integer.valueOf(input);
			if(month >= 1 && month <= 12)
				return true;
		}
		return false;
	}
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读