Brazilian license plate validation and formatting utilities.
Supports both traditional (ABCD1234) and Mercosul (ABC1D23) formats. Public API:
Brazilian license plate validation and formatting utilities. Supports both traditional (ABCD1234) and Mercosul (ABC1D23) formats. Public API: - is-valid?: validate Mercosul or traditional plates - get-format: detect format as "LLLNNNN" or "LLLNLNN" - convert-to-mercosul: convert traditional plates to Mercosul style
(convert-to-mercosul plate)Converts a traditional Brazilian license plate to Mercosul format.
The conversion works by taking a traditional plate in the format LLLNNNN (3 letters + 4 digits) and converting it to LLLNLNN (3 letters + 1 digit + 1 letter + 2 digits). The conversion rule transforms the 4 digits into 1 digit + 1 letter + 2 digits by using the second digit to generate a letter.
Input: string representing a traditional license plate (with or without hyphen). Output: string in Mercosul format when the plate is valid and traditional; nil when invalid or already Mercosul.
Examples: (convert-to-mercosul "ABC1234") ;; => "ABC1B34" (convert-to-mercosul "abc1234") ;; => "ABC1B34" (convert-to-mercosul "ABC-1234") ;; => "ABC1B34" (convert-to-mercosul "ABC1D23") ;; => nil (already Mercosul) (convert-to-mercosul "invalid") ;; => nil
Converts a traditional Brazilian license plate to Mercosul format.
The conversion works by taking a traditional plate in the format LLLNNNN
(3 letters + 4 digits) and converting it to LLLNLNN (3 letters + 1 digit +
1 letter + 2 digits). The conversion rule transforms the 4 digits into
1 digit + 1 letter + 2 digits by using the second digit to generate a letter.
Input: string representing a traditional license plate (with or without hyphen).
Output: string in Mercosul format when the plate is valid and traditional;
nil when invalid or already Mercosul.
Examples:
(convert-to-mercosul "ABC1234") ;; => "ABC1B34"
(convert-to-mercosul "abc1234") ;; => "ABC1B34"
(convert-to-mercosul "ABC-1234") ;; => "ABC1B34"
(convert-to-mercosul "ABC1D23") ;; => nil (already Mercosul)
(convert-to-mercosul "invalid") ;; => nil(get-format plate)Returns the format type of a license plate string.
Input: string representing a license plate (with or without hyphen, any case). Output:
Examples: (get-format "ABC1234") ;; => "LLLNNNN" (get-format "ABC1D23") ;; => "LLLNLNN" (get-format "ABC-1234") ;; => "LLLNNNN" (get-format "ABCD123") ;; => nil (get-format "abc1d23") ;; => "LLLNLNN"
Returns the format type of a license plate string. Input: string representing a license plate (with or without hyphen, any case). Output: - "LLLNNNN" for traditional format (3 letters + 4 digits) - "LLLNLNN" for Mercosul format (3 letters + 1 digit + 1 letter + 2 digits) - nil when the plate is invalid Examples: (get-format "ABC1234") ;; => "LLLNNNN" (get-format "ABC1D23") ;; => "LLLNLNN" (get-format "ABC-1234") ;; => "LLLNNNN" (get-format "ABCD123") ;; => nil (get-format "abc1d23") ;; => "LLLNLNN"
Pattern to remove hyphens from license plates
Pattern to remove hyphens from license plates
(is-valid? value)Validates if a string is a valid Brazilian license plate.
Accepts both:
Args: value - String to validate
Returns: true if valid license plate, false otherwise
Examples: (is-valid? "ABC1D23") ;; true (Mercosul) (is-valid? "ABC-1234") ;; true (traditional) (is-valid? "ABC1234") ;; false (ambiguous format) (is-valid? nil) ;; false (is-valid? "invalid") ;; false
Validates if a string is a valid Brazilian license plate. Accepts both: - Mercosul format: 3 letters + 1 digit + 1 letter + 2 digits (e.g., ABC1D23) - Traditional format: 3 letters + 4 digits (e.g., ABC-1234 or ABC1234) Args: value - String to validate Returns: true if valid license plate, false otherwise Examples: (is-valid? "ABC1D23") ;; true (Mercosul) (is-valid? "ABC-1234") ;; true (traditional) (is-valid? "ABC1234") ;; false (ambiguous format) (is-valid? nil) ;; false (is-valid? "invalid") ;; false
Mercosul format: 3 letters + 1 digit + 1 letter + 2 digits (e.g., ABC1D23)
Mercosul format: 3 letters + 1 digit + 1 letter + 2 digits (e.g., ABC1D23)
Traditional format: 3 letters + 4 digits (e.g., ABC1234)
Traditional format: 3 letters + 4 digits (e.g., ABC1234)
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |