正則驗證車牌號碼,包括新能源車牌


正則驗證 20180818

直接上代碼

// 正則驗證車牌,驗證通過返回true,不通過返回false
function isLicensePlate(str) {
return /^(([京津滬渝冀豫雲遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陝吉閩貴粵青藏川寧瓊使領][A-Z](([0-9]{5}[DF])|([DF]([A-HJ-NP-Z0-9])[0-9]{4})))|([京津滬渝冀豫雲遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陝吉閩貴粵青藏川寧瓊使領][A-Z][A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9掛學警港澳使領]))$/.test(str);
}

車牌驗證規則

1、傳統車牌

第 1 位為省份簡稱(漢字),第二位為發牌機關代號(A-Z 的字母)第 3 到第 7 位為序號(由字母或數字組成,但不存在字母 I 和 O,防止和數字 1、0 混淆,另外最后一位可能是 “掛學警港澳使領” 中的一個漢字)。

2、新能源車牌

第 1 位和第 2 位與傳統車牌一致,第 3 到第 8 位為序號(比傳統車牌多一位)。新能源車牌的序號規則如下:

小型車:第 1 位只能是字母 D 或 F,第 2 為可以是數字或字母,第 3 到 6 位必須是數字。

大型車:第 1 位到第 5 位必須是數字,第 6 位只能是字母 D 或 F。

測試說明

之前在網上也找過別人寫的正則驗證,都有 bug,所以自己寫了上面的正則驗證。不管你是自己寫的驗證還是網上找的驗證,不妨用下面的車牌進行測試,看是否正確。

正確的車牌:川 A123AB、川 A2222 學、川 AF12345、川 A12345D。

錯誤的車牌:川 A123456、川 A2222i、川 AA12345、川 AD123456。

原文鏈接:https://blog.csdn.net/xjun0812/article/details/81806118

 

20170814

    /**
     * 第一:普通汽車
     * 車牌號格式:漢字 + A-Z + 5 位 A-Z 或 0-9(車牌號不存在字母 I 和 O 防止和 1、0 混淆)
     * (只包括了普通車牌號,教練車,警等車牌號 。部分部隊車,新能源不包括在內)

  1. 常規車牌號:僅允許以漢字開頭,后面可錄入六個字符,由大寫英文字母和阿拉伯數字組成。如:粵 B12345;
  2. 武警車牌:允許前兩位為大寫英文字母,后面可錄入七個字符,由大寫英文字母和阿拉伯數字組成,其中第三位可錄漢字也可錄大寫英文字母及阿拉伯數字,如:WJ01 警 0081、WJ0112345。
  3. 最后一個為漢字的車牌:允許以漢字開頭,后面可錄入六個字符,前五位字符,由大寫英文字母和阿拉伯數字組成,而最后一個字符為漢字,漢字包括 “掛”、“學”、“警”、“軍”、“港”、“澳”。如:粵 Z1234 港。
  4. 新軍車牌:以兩位為大寫英文字母開頭,后面以 5 位阿拉伯數字組成。如:BA12345。
  5. 黑龍江車牌存在 08 或 38 開頭的情況


     * 京津滬渝冀豫雲遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陝吉閩貴粵青藏川寧瓊軍空海北沈蘭濟南廣成使領
     * 普通汽車規則:"[京津滬渝冀豫雲遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陝吉閩貴粵青藏川寧瓊使領 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);
    }

原文鏈接:https://blog.csdn.net/tangjili5620/article/details/77159453


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM