Android开发笔记(二)常见的正则校验—持续收录中

Android中常见的正则校验—持续收录中

app经常要检查用户输入信息是否正确,例如手机号是否合法、电子邮箱是否合法、身份证号是否合法等等。这种合法性验证就得用到正则表达式,对应到具体的处理类,便是Pattern和Matcher。Pattern是预定义校验规则,而Matcher则是进行校验判断;另外,从java1.4开始,对于简单的格式校验,也可直接调用String类的matches方法。常用的字符串校验场景与相应的示例代码如下:

[java]  view plain  copy
 
  1. public static boolean isPhoneByPattern(String phone) {  
  2.     String regex = "^1[3|4|5|8]\\d{9}$";  
  3.     Pattern pattern = Pattern.compile(regex);  
  4.     Matcher matcher = pattern.matcher(phone);  
  5.     return matcher.matches();  
  6. }  
  7.   
  8. public static boolean isPhoneByString(String phone) {  
  9.     // "[1]"代表第1位为数字1,"[358]"代表第二位可以为3、5、8中的一个,"\\d{9}"代表后面是可以是0~9的数字,有9位。  
  10.     String regex = "[1][358]\\d{9}";  
  11.     return phone.matches(regex);  
  12. }  
  13.   
  14. public static boolean isEmailByPattern(String email) {  
  15.     String regex = "^([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$";  
  16.     Pattern pattern = Pattern.compile(regex);  
  17.     Matcher matcher = pattern.matcher(email);  
  18.     return matcher.matches();  
  19. }  
  20.   
  21. public static boolean isEmailByString(String email) {  
  22.     String regex = "([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)";  
  23.     return email.matches(regex);  
  24. }  
  25.   
  26. public static boolean isICNOByPattern(String icno) {  
  27.     String regex15 = "^[1-9]\\d{7}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}$";  
  28.     Pattern pattern15 = Pattern.compile(regex15);  
  29.     Matcher matcher15 = pattern15.matcher(icno);  
  30.     String regex18 = "^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}([0-9]|x|X)$";  
  31.     Pattern pattern18 = Pattern.compile(regex18);  
  32.     Matcher matcher18 = pattern18.matcher(icno);  
  33.     return (matcher15.matches() || matcher18.matches());  
  34. }  
  35.   
  36. public static boolean isICNOByString(String icno) {  
  37.     String regex15 = "[1-9]\\d{7}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}";  
  38.     String regex18 = "[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}([0-9]|x|X)";  
  39.     return (icno.matches(regex15) || icno.matches(regex18));  
  40. }  

你可能感兴趣的:(Android开发)