汽车车牌正则表达式验证,含新能源车牌(适用全国)

来源:互联网 发布:简易衣柜 知乎 编辑:程序博客网 时间:2024/04/30 02:05

    /**
     * 第一:普通汽车
     * 车牌号格式:汉字 + A-Z + 5位A-Z或0-9(  车牌号不存在字母I和O防止和1、0混淆)
     * (只包括了普通车牌号,教练车,警等车牌号 。部分部队车,新能源不包括在内)
     * 京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼军空海北沈兰济南广成使领
     * 普通汽车规则:"[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]{1}"
     *
     *  第二:新能源车
     * 组成:省份简称(1位汉字)+发牌机关代号(1位字母)+序号(6位),总计8个字符,序号不能出现字母I和字母O
     * 通用规则:不区分大小写,第一位:省份简称(1位汉字),第二位:发牌机关代号(1位字母)
     * 序号位:
     * 小型车,第一位:只能用字母D或字母F,第二位:字母或者数字,后四位:必须使用数字
     * ---([DF][A-HJ-NP-Z0-9][0-9]{4})
     * 大型车,前五位:必须使用数字,第六位:只能用字母D或字母F。
     * ----([0-9]{5}[DF])
     * 新能源车规则:"[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}(([0-9]{5}[DF])|([DF][A-HJ-NP-Z0-9][0-9]{4}))"
     *
     * 总规则:"([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}(([0-9]{5}[DF])|([DF]([A-HJ-NP-Z0-9])[0-9]{4})))|([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]{1})"

     */



//代码中引用此方法即可

    public static boolean isCarnumberNO(String carnumber) {
        String carnumRegex = "([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}(([0-9]{5}[DF])|([DF]([A-HJ-NP-Z0-9])[0-9]{4})))|([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]{1})";

        if (TextUtils.isEmpty(carnumber)) return false;
        else return carnumber.matches(carnumRegex);
    }