我是靠谱客的博主 高大往事,最近开发中收集的这篇文章主要介绍对护照等的正则判断(JAVA-工作记录)1、分析2、代码实现3、总结,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1、分析

需求:对护照、港澳通行证、台湾居民大陆通行证进行后台规则校验;

各证件类型的规则:

护照:

14/15开头 + 7位数字;
或G + 8位数字;
或P + 7位数字;
或S/D + 7或8位数字;

港澳通行证:

H或M开头,+10位或6位数字; 

台湾居民大陆通行证:

8位数字或18位数字,或数字+英文字母(总计10位)

2、代码实现

所需java工具类:java.util.regex.Matcher和java.util.regex.Pattern

class utilforcard{
/**
*
* @param regex 正则字符串
* @param str
需要比较的字符串
* @return 比较结果 true 匹配 false 不匹配
*/
private static boolean match(String regex, String str) {
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(str);
return matcher.matches();
}
/**
* 证件校验
* @param cardnum 校验的证件的号码
* @param cardtype 证件类型
* @return 比较结果 true 匹配 false 不匹配
*/
public static boolean cardValidate(String cardnum,String cardtype){
String reg="";
switch (cardtype){
case "passport":
// 护照
reg="^1[45][0-9]{7}|^[P|S]\d{7}|^[S|G]\d{8}$";
break;
case "gapass":
// 港澳居民来往内地通行证
reg = "^[H|M]\d{10}|^[H|M]\d{6}$";
break;
case "twpass":
// 台湾居民来往大陆通行证
reg = "^\d{8}|^[a-zA-Z0-9]{10}|^\d{18}$";
break;
default:break;
}
return match(reg,cardnum);
}
}

3、总结

护照正则字符串:"^1[45][0-9]{7}|^[P|S]\d{7}|^[S|G]\d{8}$"
港澳居民来往内地通行证正则字符串:"^[H|M]\d{10}|^[H|M]\d{6}$"
台湾居民来往大陆通行证正则字符串:"^\d{8}|^[a-zA-Z0-9]{10}|^\d{18}$"

最后

以上就是高大往事为你收集整理的对护照等的正则判断(JAVA-工作记录)1、分析2、代码实现3、总结的全部内容,希望文章能够帮你解决对护照等的正则判断(JAVA-工作记录)1、分析2、代码实现3、总结所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部