当前位置: 首页 > news >正文

邵东建设公司网站哪家好怎样做公司自己的官方网站

邵东建设公司网站哪家好,怎样做公司自己的官方网站,飞天侠调用wordpress,请问有没有做网站使用Spring Boot实现居民身份证合法性验证 在现代社会中#xff0c;身份证号码的合法性验证是很多系统中不可或缺的一部分。身份证号码用于确认个人身份#xff0c;其格式和校验机制各不相同。本文将介绍如何使用Spring Boot构建一个通用控制器#xff0c;通过API来验证中国…使用Spring Boot实现居民身份证合法性验证 在现代社会中身份证号码的合法性验证是很多系统中不可或缺的一部分。身份证号码用于确认个人身份其格式和校验机制各不相同。本文将介绍如何使用Spring Boot构建一个通用控制器通过API来验证中国大陆、台湾、澳门和香港居民的身份证号码合法性。 代码概述 本文的核心代码是一个Spring Boot控制器CommonController它提供了一个API用于验证身份证号码的合法性。以下是该控制器的完整代码 SuppressWarnings(AlibabaUndefineMagicConstant) Tag(name 通用控制器, description 通用控制器) RestController RequestMapping(/common) public class CommonController {Autowiredprivate ICommonService commonService;/*** 每一位的权重*/private static final int[] WEIGHT {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2};/*** 校验码对应表*/private static final char[] CHECK_CODE {1, 0, X, 9, 8, 7, 6, 5, 4, 3, 2};/*** 正则表达式匹配澳门身份证号码*/private static final Pattern MACAU_ID_PATTERN Pattern.compile([1|5|7][0-9]{6}\\(?[0-9A-Z]\\)?);/*** 居民身份证合法性验证** param idCard 身份证号码* return ValidationResultModel*/Operation(summary 居民身份证合法性验证, description 居民身份证合法性验证)Parameter(name idCard, description 居民身份证号码, required true, in ParameterIn.QUERY)GetMapping(/validateID)public ApiResultValidationResultModel validateIdCard(RequestParam(idCard) String idCard) throws ParseException {IDCardType idCardType determineIdCardType(idCard);switch (idCardType) {case MAINLAND:return validateMainlandId(idCard);case TAIWAN:return validateTaiwanId(idCard);case MACAU:return validateMacauId(idCard);case HONGKONG:return validateHongKongId(idCard);default:ValidationResultModel invalid new ValidationResultModel();invalid.setValid(false);invalid.setMessage(身份证件号码无效请仔细核对后重新输入);return ApiResult.ok(invalid);}}private IDCardType determineIdCardType(String idCard) {if (idCard.matches([1-9][0-9]{5}(19[0-9]{2}|20[0-9]{2})(0[1-9]|1[0-2])(0[1-9]|[12][0-9]|3[01])[0-9]{3}[0-9Xx])) {return IDCardType.MAINLAND;} else if (idCard.matches([A-Z][0-9]{9})) {return IDCardType.TAIWAN;} else if (idCard.matches([1|5|7][0-9]{6}\\(?[0-9A-Z]\\)?)) {return IDCardType.MACAU;} else if (idCard.matches([A-Z]{1,2}[0-9]{6}\\(?[0-9A]\\)?)) {return IDCardType.HONGKONG;} else {return IDCardType.UNKNOWN;}}enum IDCardType {MAINLAND,TAIWAN,MACAU,HONGKONG,UNKNOWN}private static char getCheckCode(String idCard17) {int sum 0;for (int i 0; i 17; i) {sum (idCard17.charAt(i) - 0) * WEIGHT[i];}return CHECK_CODE[sum % 11];}public boolean validateTaiwanId(String id) {if (id null || !id.matches([A-Z][0-9]{9})) {return false;}char letter id.charAt(0);int letterValue LETTER_TO_NUMBER_MAP.get(letter);int letter1 letterValue / 10;int letter2 letterValue % 10;int sum letter1 letter2 * 9;int[] weights {8, 7, 6, 5, 4, 3, 2, 1};for (int i 0; i 8; i) {sum Character.getNumericValue(id.charAt(i 1)) * weights[i];}sum Character.getNumericValue(id.charAt(9));return sum % 10 0;}private static final MapCharacter, Integer LETTER_TO_NUMBER_MAP new HashMap();static {LETTER_TO_NUMBER_MAP.put(A, 10);LETTER_TO_NUMBER_MAP.put(B, 11);LETTER_TO_NUMBER_MAP.put(C, 12);LETTER_TO_NUMBER_MAP.put(D, 13);LETTER_TO_NUMBER_MAP.put(E, 14);LETTER_TO_NUMBER_MAP.put(F, 15);LETTER_TO_NUMBER_MAP.put(G, 16);LETTER_TO_NUMBER_MAP.put(H, 17);LETTER_TO_NUMBER_MAP.put(J, 18);LETTER_TO_NUMBER_MAP.put(K, 19);LETTER_TO_NUMBER_MAP.put(L, 20);LETTER_TO_NUMBER_MAP.put(M, 21);LETTER_TO_NUMBER_MAP.put(N, 22);LETTER_TO_NUMBER_MAP.put(P, 23);LETTER_TO_NUMBER_MAP.put(Q, 24);LETTER_TO_NUMBER_MAP.put(R, 25);LETTER_TO_NUMBER_MAP.put(S, 26);LETTER_TO_NUMBER_MAP.put(T, 27);LETTER_TO_NUMBER_MAP.put(U, 28);LETTER_TO_NUMBER_MAP.put(V, 29);LETTER_TO_NUMBER_MAP.put(W, 30);LETTER_TO_NUMBER_MAP.put(X, 31);LETTER_TO_NUMBER_MAP.put(Y, 32);LETTER_TO_NUMBER_MAP.put(Z, 33);}public static boolean validateMacauId(String id) {if (id null || !MACAU_ID_PATTERN.matcher(id).matches()) {return false;}int[] weights {8, 7, 6, 5, 4, 3, 2, 1};int sum 0;for (int i 0; i 7; i) {char c id.charAt(i);sum Character.getNumericValue(c) * weights[i];}char checkChar id.charAt(7);int checkCode;if (checkChar A) {checkCode 10;} else {checkCode Character.getNumericValue(checkChar);}return (sum checkCode) % 11 0;}public static boolean validateHongKongId(String id) {if (id null || !id.matches([A-Z]{1,2}[0-9]{6}\\(?[0-9A]\\)?)) {return false;}id id.replace((, ).replace(), );if (id.length() 8) {id id;}if (id.length() ! 9) {return false;}int[] weights {9, 8, 7, 6, 5, 4, 3, 2, 1};int total 0;for (int i 0; i 9; i) {total charToValue(id.charAt(i)) * weights[i];}int remainder total % 11;char checkDigit id.charAt(id.length() - 1);if (remainder 0) {return checkDigit 0;} else if (remainder 1) {return Character.toUpperCase(checkDigit) A;} else {return checkDigit Character.forDigit(11 - remainder, 10);}}private static int charToValue(char c) {if (c ) {return 36;} else if (Character.isLetter(c)) {return Character.toUpperCase(c) - 55;} else {return Character.getNumericValue(c);}} }功能解析 1. 主要组件 注解 Tag用于Swagger文档生成定义了控制器的名称和描述。RestController表明该类是一个控制器并且每个方法都会返回一个对象这些对象会自动转换为JSON格式。RequestMapping定义了基础路径为/common即所有的请求都以该 路径为前缀。 自动注入 Autowired自动注入了一个服务接口ICommonService用于业务逻辑的处理。 2. 常量 身份证校验相关常量 WEIGHT大陆居民身份证每位数字的权重用于校验码计算。CHECK_CODE校验码对照表根据前17位的计算结果获取校验码。MACAU_ID_PATTERN用于匹配澳门身份证号码的正则表达式。 3. 方法 validateIdCard 接收一个身份证号码并根据其类型调用相应的校验方法。校验类型包括大陆、台湾、澳门、香港的身份证号码。 determineIdCardType 根据身份证号码的格式判断其类型大陆、台湾、澳门、香港、未知。 4. 身份证校验方法 getCheckCode计算大陆居民身份证前17位的校验码。validateTaiwanId校验台湾身份证号码是否合法。validateMacauId校验澳门身份证号码是否合法。validateHongKongId校验香港身份证号码是否合法。 详细说明 居民身份证合法性验证 大陆身份证 大陆居民身份证号码为18位数字前17位为出生日期、地区代码等信息第18位为校验码。校验码根据前17位数字计算得出 private static char getCheckCode(String idCard17) {int sum 0;for (int i 0; i 17; i) {sum (idCard17.charAt(i) - 0) * WEIGHT[i];}return CHECK_CODE[sum % 11]; }台湾身份证 台湾身份证号码为10位第一位为字母表示地区后9位为数字。校验时需要将字母转换为对应的数字并根据特定权重计算总和 public boolean validateTaiwanId(String id) {if (id null || !id.matches([A-Z][0-9]{9})) {return false;}char letter id.charAt(0);int letterValue LETTER_TO_NUMBER_MAP.get(letter);int letter1 letterValue / 10;int letter2 letterValue % 10;int sum letter1 letter2 * 9;int[] weights {8, 7, 6, 5, 4, 3, 2, 1};for (int i 0; i 8; i) {sum Character.getNumericValue(id.charAt(i 1)) * weights[i];}sum Character.getNumericValue(id.charAt(9));return sum % 10 0; }澳门身份证 澳门身份证号码为9位前7位为数字第8位为校验码。需要根据特定权重计算校验码 public static boolean validateMacauId(String id) {if (id null || !MACAU_ID_PATTERN.matcher(id).matches()) {return false;}int[] weights {8, 7, 6, 5, 4, 3, 2, 1};int sum 0;for (int i 0; i 7; i) {char c id.charAt(i);sum Character.getNumericValue(c) * weights[i];}char checkChar id.charAt(7);int checkCode;if (checkChar A) {checkCode 10;} else {checkCode Character.getNumericValue(checkChar);}return (sum checkCode) % 11 0; }香港身份证 香港身份证号码由8或9位组成前1-2位为字母后6位为数字最后一位为校验码。需要根据特定权重计算校验码 public static boolean validateHongKongId(String id) {if (id null || !id.matches([A-Z]{1,2}[0-9]{6}\\(?[0-9A]\\)?)) {return false;}id id.replace((, ).replace(), );if (id.length() 8) {id id;}if (id.length() ! 9) {return false;}int[] weights {9, 8, 7, 6, 5, 4, 3, 2, 1};int total 0;for (int i 0; i 9; i) {total charToValue(id.charAt(i)) * weights[i];}int remainder total % 11;char checkDigit id.charAt(id.length() - 1);if (remainder 0) {return checkDigit 0;} else if (remainder 1) {return Character.toUpperCase(checkDigit) A;} else {return checkDigit Character.forDigit(11 - remainder, 10);} }总结 本文介绍了如何使用Spring Boot构建一个通用控制器通过API来验证中国大陆、台湾、澳门和香港居民的身份证号码合法性。通过具体的代码示例详细解释了不同地区身份证号码的校验逻辑。希望这篇文章对您在实际开发中有所帮助。
http://www.pierceye.com/news/348594/

相关文章:

  • 建设网站有哪些内容wordpress发布心情
  • 怎样找回网站备案密码有趣的wordpress插件
  • 国外网站空间购买wordpress直接
  • 企业网站建设报价方案模板网站建设前期规划方案
  • 做网站美工排版怎样进入公众号平台
  • 福州网站定制设计wordpress多说插件
  • 电脑网站打不开什么原因wordpress api 中文
  • 自己怎么免费做网站网页重庆专业平台推广公司
  • 英文网站建设电话咨询网站推广平台有哪些
  • 在家里组一个服务器做网站有心学做网站
  • 广东企业网站模板推荐flash网址
  • 网站标题正确书写标准h5页面制作平台有哪些
  • 详情页设计与制作网站品牌词优化怎么做
  • 成都科技网站建设咨询电话平面设计品牌设计
  • 网站建设的可行性报告做网站需要了解的知识
  • 高邮网站建设推广怎么做
  • 珠宝网站建设公司wordpress 显示指定分类
  • 站酷网设计素材龙岗网站建设公司哪家口碑好
  • 达州达县网站建设上海网络推广服务公司
  • 周口网站关键词优化助孕网站优化推广
  • 做网站的钱叫什么科目企业做网站的好处有哪些
  • 做外贸网站流程如何建立网上商城
  • 爱网站关键词挖掘广西住房城乡建设厅
  • 零基础网站建设入门到精通视频教程河源建设网站
  • 焦作市建设工程网站石龙网站开发
  • 建公司网站报价牛商网网站建设
  • 中国现代公路建设有限公司网站网站建设技巧饣金手指排名27
  • 食品网站开发的背景阿里云oss建站 直接上传wordpress
  • 石泉政协网站建设方案网络广告推广服务
  • 怎么用lamp做网站桂林网