港澳台身份证的正则表达式


港澳台身份证的正则表达式

香港

说明:一个英文+6个数字+(一个校验码,0~9或A)

正则表达式:[A-Z]{1,2}[0-9]{6}([0-9A])

参考:Wikipedia

澳门

说明:第一位1、5、7,后面6个数字,最后带括号的一位校验码0~9

正则表达式:[157][0-9]{6}([0-9])

参考:Wikipedia

台湾

说明:1个英文+9个数字

正则表达式:[A-Z][0-9]{9}

参考:Wikipedia

Groovy片段示例

def matchHK = {
    def matcher = it =~ /^[A-Z]{1,2}[0-9]{6}\([0-9A]\)/
}
def matchMO = {
    def matcher = it =~ /^[157][0-9]{6}\([0-9]\)/
}
def matchTW = {
    def matcher = it =~ /^[A-Z][0-9]{9}/
}

def id = context.getIdNumber()
if (!id) return false
if (id?.trim()?.isEmpty()) return false
return matchHK(id.toUpperCase()).matches() || matchMO(id.toUpperCase()).matches() || matchTW(id.toUpperCase()).matches()
sailorivy /
Published under (CC) BY-NC-SA in categories Memento  tagged with 正则表达式