Liking cljdoc? Tell your friends :D

brazilian-utils.license-plate.core

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
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
raw docstring

convert-to-mercosulclj/s

(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
sourceraw docstring

get-formatclj/s

(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:

  • "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"

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"
sourceraw docstring

hyphen-separatorclj/s

Pattern to remove hyphens from license plates

Pattern to remove hyphens from license plates
sourceraw docstring

is-valid?clj/s

(is-valid? value)

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

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
sourceraw docstring

mercosul-patternclj/s

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)
sourceraw docstring

traditional-patternclj/s

Traditional format: 3 letters + 4 digits (e.g., ABC1234)

Traditional format: 3 letters + 4 digits (e.g., ABC1234)
sourceraw docstring

cljdoc builds & hosts documentation for Clojure/Script libraries

Keyboard shortcuts
Ctrl+kJump to recent docs
Move to previous article
Move to next article
Ctrl+/Jump to the search field
× close