我是靠谱客的博主 激昂大门,最近开发中收集的这篇文章主要介绍oracle通过正则验证香港、澳门、台湾的身份证和护照,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

台湾的:1个英文+9个数字
[A-Z][0-9]{9}
香港的:一个英文+6个数字+(一个校验码0~9或A)
[A-Z][0-9]{6}([0-9A])
澳门的:第一位1、5、7,后面7个数字,最后带括号的一位校验码
[157][0-9]{6}([0-9])
护照的:因私普通护照号码格式有:14/15+7位数,G+8位数;因公普通的是:P.+7位数;
公务的是:S.+7位数 或者 S+8位数,以D开头的是外交护照.D=diplomatic
^1[45][0-9]{7}|G[0-9]{8}|P[0-9]{7}|S[0-9]{7,8}|D[0-9]+$

 

 ---香港特区护照/身份证明  10位 并且有 ()

在香港每一个居民都会获发一张身份证,证上的号码一共分为 3 个部分: 

第一个部分是由 1 个或 2 个英文字母所组成. 

第二部分是 6 个数目字. 

第三部分有 1 对括号,中间是 1 个数目字或者是英文字母 “A”. 

例如:“H856249(2)” 就是一个通常见到的身份证号码了.

---台湾居民来往大陆通行证

台湾身份证总共有10位数字。第一位是字母。后面九位是数字。

---澳门特区护照/身份证明

8位数,不包含出生年月

格式为 xxxxxxx(x)

注:x全为数字,无英文字母

首位数只有1、5、7字开头的

 

 

--台湾证件类型

select * from table where length(id_number)=10 and regexp_like(id_number,'[A-Z][0-9]{9}');

 

--澳门证件类型

select * from table where length(id_number)=10 and  (regexp_like(id_number,'[157][0-9]{6}([0-9])') or  regexp_like(id_number,'[157][0-9]{6}([0-9])')) ;

 

--香港证件类型

select * from table where length(id_number)=10 and  (regexp_like(id_number,'[A-Z][0-9]{6}([0-9A])') or  regexp_like(id_number,'[A-Z][0-9]{6}([0-9A])')) ;

 

--护照证件类型

select * from table where regexp_like(id_number,'^1[45][0-9]{7}|G[0-9]{8}|P[0-9]{7}|S[0-9]{7,8}|D[0-9]+$') and (length(id_number)=8 or length(id_number)=9);

 

最后

以上就是激昂大门为你收集整理的oracle通过正则验证香港、澳门、台湾的身份证和护照的全部内容,希望文章能够帮你解决oracle通过正则验证香港、澳门、台湾的身份证和护照所遇到的程序开发问题。

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

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

评论列表共有 0 条评论

立即
投稿
返回
顶部