新能源车
号码共8位,组成:
1.省份简称
[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领]
2.发牌机关代号字母A-Z
;
3.序号位有6位数,分为小型车和大型车;
- 小型车。第1位:仅限字母
ABCDEFGHJK
,第2位字母或者数字,后4位纯数字;
[DABCEFGHJK]([A-HJ-NP-Z0-9])[0-9]{4}
其中ABCDE
代表纯电动车;FGHJK
代表插电混动车或燃料电池车。
- 大型车。前5位纯数字,第6位仅限字母
DF
。
[0-9]{5}[DF]
正则表达式:
[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-Z](([0-9]{5}[DF])|([DABCEFGHJK]([A-HJ-NP-Z0-9])[0-9]{4}))
注意:序号位不存在字母I和O防止和1、0混淆;
普通车
组成: 省份简称 + 机关代号字母 + 5位字母或数字; 其中最后一位还包括汉字挂学警港澳使领
正则表达式:
[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-Z][A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳使领]
代码示例
function isVehicleNumber(vehicleNumber) {
const newReg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-Z](([0-9]{5}[DF])|([DABCEFGHJK]([A-HJ-NP-Z0-9])[0-9]{4}))$/
const oldReg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-Z][A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳使领]$/
if (vehicleNumber.length === 7) {
return oldReg.test(vehicleNumber);
} else if (vehicleNumber.length === 8) {
return newReg.test(vehicleNumber); // 京AA12345
} else {
return false;
}
}