usdl-regex
Version:
US Driver's License validation via https://ntsi.com/drivers-license-format/
370 lines (369 loc) • 7.39 kB
JSON
{
"AL": {
"rule": "^[0-9]{1,8}$",
"description": [
"1-8 Numeric"
]
},
"AK": {
"rule": "^[0-9]{1,7}$",
"description": [
"1-7 Numbers"
]
},
"AZ": {
"rule": "(^[A-Z]{1}[0-9]{1,8}$)|(^[A-Z]{2}[0-9]{2,5}$)|(^[0-9]{9}$)",
"description": [
"1 Alpha + 1-8 Numeric",
"2 Alpha + 2-5 Numeric",
"9 Numeric"
]
},
"AR": {
"rule": "^[0-9]{4,9}$",
"description": [
"4-9 Numeric"
]
},
"CA": {
"rule": "^[A-Z]{1}[0-9]{7}$",
"description": [
"1 Alpha + 7 Numeric"
]
},
"CO": {
"rule": "(^[0-9]{9}$)|(^[A-Z]{1}[0-9]{3,6}$)|(^[A-Z]{2}[0-9]{2,5}$)",
"description": [
"9 Numeric",
"1 Alpha + 3-6 Numeric",
"2 Alpha + 2-5 Numeric"
]
},
"CT": {
"rule": "^[0-9]{9}$",
"description": [
"9 Numeric"
]
},
"DE": {
"rule": "^[0-9]{1,7}$",
"description": [
"1-7 Numeric"
]
},
"DC": {
"rule": "(^[0-9]{7}$)|(^[0-9]{9}$)",
"description": [
"7 Numeric",
"9 Numeric"
]
},
"FL": {
"rule": "^[A-Z]{1}[0-9]{12}$",
"description": [
"1 Alpha + 12 Numeric"
]
},
"GA": {
"rule": "^[0-9]{7,9}$",
"description": [
"7-9 Numeric"
]
},
"GU" : {
"rule": "^[A-Z]{1}[0-9]{14}$",
"description": [
"1 Alpha + 14 Numeric"
]
},
"HI": {
"rule": "(^[A-Z]{1}[0-9]{8}$)|(^[0-9]{9}$)",
"description": [
"1 Alpha + 8 Numeric",
"9 Numeric"
]
},
"ID": {
"rule": "(^[A-Z]{2}[0-9]{6}[A-Z]{1}$)|(^[0-9]{9}$)",
"description": [
"2 Alpha + 6 Numeric + 1 Alpha",
"9 Numeric"
]
},
"IL": {
"rule": "^[A-Z]{1}[0-9]{11,12}$",
"description": [
"1 Alpha + 11-12 Numeric"
]
},
"IN": {
"rule": "(^[A-Z]{1}[0-9]{9}$)|(^[0-9]{9,10}$)",
"description": [
"1 Alpha + 9 Numeric",
"9-10 Numeric"
]
},
"IA": {
"rule": "^([0-9]{9}$)|([0-9]{3}[A-Z]{2}[0-9]{4})$",
"description": [
"9 Numeric",
"3 Numeric + 2 Alpha + 4 Numeric"
]
},
"KS": {
"rule": "(^([A-Z]{1}[0-9]{1}){2}[A-Z]{1}$)|(^[A-Z]{1}[0-9]{8}$)|(^[0-9]{9}$)",
"description": [
"1 Alpha + 1 Numeric + 1 Alpha + 1 Numeric + 1 Alpha",
"1 Alpha + 8 Numeric",
"9 Numeric"
]
},
"KY": {
"rule": "(^[A-Z]{1}[0-9]{8,9}$)|(^[0-9]{9}$)",
"description": [
"1 Alpha + 8-9 Numeric",
"9 Numeric"
]
},
"LA": {
"rule": "^[0-9]{1,9}$",
"description": [
"1-9 Numeric"
]
},
"ME": {
"rule": "(^[0-9]{7,8}$)|(^[0-9]{7}[A-Z]{1}$)",
"description": [
"7-8 Numeric",
"7 Numeric + 1 Alpha"
]
},
"MD": {
"rule": "^[A-Z]{1}[0-9]{12}$|MD[0-9]{11}",
"description": [
"1Alpha+12Numeric"
]
},
"MA": {
"rule": "(^[A-Z]{1}[0-9]{8}$)|(^[A-Z]{2}[0-9]{7}$)|(^[0-9]{9}$)",
"description": [
"1 Alpha + 8 Numeric",
"2 Alpha + 7 Numeric",
"9 Numeric"
]
},
"MI": {
"rule": "(^[A-Z]{1}[0-9]{10}$)|(^[A-Z]{1}[0-9]{12}$)",
"description": [
"1 Alpha + 10 Numeric",
"1 Alpha + 12 Numeric"
]
},
"MN": {
"rule": "^[A-Z]{1}[0-9]{12}$",
"description": [
"1 Alpha + 12 Numeric"
]
},
"MS": {
"rule": "^[0-9]{9}$",
"description": [
"9 Numeric"
]
},
"MO": {
"rule": "(^[A-Z]{1}[0-9]{5,9}$)|(^[A-Z]{1}[0-9]{6}[R]{1}$)|(^[0-9]{3}[A-Z]{1}[0-9]{6}$)|(^[0-9]{8}[A-Z]{2}$)|(^[0-9]{9}[A-Z]{1}$)|(^[0-9]{9}$)",
"description": [
"1 Alpha + 5-9 Numeric",
"1 Alpha + 6 Numeric + 'R'",
"8 Numeric + 2 Alpha",
"9 Numeric + 1 Alpha",
"9 Numeric",
"3 Numeric + 1 Alpha + 6 Numeric"
]
},
"MT": {
"rule": "(^[A-Z]{1}[0-9]{8}$)|(^[0-9]{13}$)|(^[0-9]{9}$)|(^[0-9]{14}$)|(^[A-Z]{3}[0-9]{10})",
"description": [
"1 Alpha + 8 Numeric",
"13 Numeric",
"9 Numeric",
"14 Numeric",
"3 Alpha + 10 Numeric"
]
},
"NE": {
"rule": "(^[0-9]{1,7}$)|(^[A-Z]{1}[0-9]{6,8}$)",
"description": [
"1-7 Numeric",
"1Alpha+6-8Numeric"
]
},
"NV": {
"rule": "(^[0-9]{9,10}$)|(^[0-9]{12}$)|(^[X]{1}[0-9]{8}$)",
"description": [
"9 Numeric",
"10 Numeric",
"12 Numeric",
"'X' + 8 Numeric"
]
},
"NH": {
"rule": "(^[0-9]{2}[A-Z]{3}[0-9]{5}$)|(^[A-Z]{3}[0-9]{8}$)",
"description": [
"2 Numeric + 3 Alpha + 5 Numeric"
]
},
"NJ": {
"rule": "^[A-Z]{1}[0-9]{14}$",
"description": [
"1 Alpha + 14 Numeric"
]
},
"NM": {
"rule": "^[0-9]{8,9}$",
"description": [
"8 Numeric",
"9 Numeric"
]
},
"NY": {
"rule": "(^[A-Z]{1}[0-9]{7}$)|(^[A-Z]{1}[0-9]{18}$)|(^[0-9]{8}$)|(^[0-9]{9}$)|(^[0-9]{16}$)|(^[A-Z]{8}$)",
"description": [
"1 Alpha + 7 Numeric",
"1 Alpha + 18 Numeric",
"8 Numeric",
"9 Numeric",
"16 Numeric",
"8 Alpha"
]
},
"NC": {
"rule": "^[0-9]{1,12}$",
"description": [
"1-12 Numeric"
]
},
"ND": {
"rule": "(^[A-Z]{3}[0-9]{6}$)|(^[0-9]{9}$)",
"description": [
"3 Alpha + 6 Numeric",
"9 Numeric"
]
},
"OH": {
"rule": "(^[A-Z]{1}[0-9]{4,8}$)|(^[A-Z]{2}[0-9]{3,7}$)|(^[0-9]{8}$)",
"description": [
"1 Alpha + 4-8 Numeric",
"2 Alpha + 3-7 Numeric",
"8 Numeric"
]
},
"OK": {
"rule": "(^[A-Z]{1}[0-9]{9}$)|(^[0-9]{9}$)",
"description": [
"1 Alpha + 9 Numeric",
"9 Numeric"
]
},
"OR": {
"rule": "(^[0-9]{1,9}$)|(^[A-Za-z][0-9]{6,7}$)",
"description": [
"1-9 Numeric",
"One Alpha + 6-7 Numberic"
]
},
"PA": {
"rule": "^[0-9]{8}$",
"description": [
"8 Numeric"
]
},
"PR": {
"rule": "(^[0-9]{9}$)|(^[0-9]{5,7}$)",
"description": [
"5-7 Numeric",
"9 Numeric"
]
},
"RI": {
"rule": "^([0-9]{7,8}$)|(^[A-Z]{1}[0-9]{6}$)",
"description": [
"7-8 Numeric",
"1 Alpha + 6 Numeric"
]
},
"SC": {
"rule": "^[0-9]{5,11}$",
"description": [
"5-11 Numeric"
]
},
"SD": {
"rule": "(^[0-9]{6,10}$)|(^[0-9]{12}$)",
"description": [
"6-10 Numeric",
"12 Numeric"
]
},
"TN": {
"rule": "^[0-9]{7,9}$",
"description": [
"7-9 Numeric"
]
},
"TX": {
"rule": "^[0-9]{7,8}$",
"description": [
"7-8 Numeric"
]
},
"UT": {
"rule": "^[0-9]{4,10}$",
"description": [
"4-10 Numeric"
]
},
"VT": {
"rule": "(^[0-9]{8}$)|(^[0-9]{7}[A]$)",
"description": [
"8 Numeric",
"7 Numeric + 'A'"
]
},
"VA": {
"rule": "(^[A-Z]{1}[0-9]{8,11}$)|(^[0-9]{9}$)",
"description": [
"1 Alpha + 8 Numeric",
"1 Alpha + 9 Numeric",
"1 Alpha + 10 Numeric",
"1 Alpha + 11 Numeric",
"9 Numeric"
]
},
"WA": {
"rule": "^(?=.{12}$)[A-Z]{1,7}[A-Z0-9\\*]{4,11}$",
"description": [
"1-7 Alpha + any combination of Alpha, Numeric, and * for a total of 12 characters"
]
},
"WV": {
"rule": "(^[0-9]{7}$)|(^[A-Z]{1,2}[0-9]{5,6}$)",
"description": [
"7 Numeric",
"1-2 Alpha + 5-6 Numeric"
]
},
"WI": {
"rule": "^[A-Z]{1}[0-9]{13}$",
"description": [
"1 Alpha + 13 Numeric"
]
},
"WY": {
"rule": "^[0-9]{9,10}$",
"description": [
"9-10 Numeric"
]
}
}