diff --git a/src/components/order-form/form/car-number/car-number-input.tsx b/src/components/order-form/form/car-number/car-number-input.tsx index 5d3daa1..6a6dcd9 100644 --- a/src/components/order-form/form/car-number/car-number-input.tsx +++ b/src/components/order-form/form/car-number/car-number-input.tsx @@ -15,7 +15,7 @@ export const CarNumberInput = forwardRef( // @ts-ignore onChange?.(formattedValue); }} - maxLength={8} + maxLength={12} /> ); }, diff --git a/src/components/order-form/form/car-number/helper.ts b/src/components/order-form/form/car-number/helper.ts index 2efb4dc..21a5525 100644 --- a/src/components/order-form/form/car-number/helper.ts +++ b/src/components/order-form/form/car-number/helper.ts @@ -3,11 +3,11 @@ const VALID_LETTER = 'а|в|е|к|м|н|о|р|с|т|у|х'; const invalidCharsRe = new RegExp(`[^(${VALID_LETTER})0-9]`, 'gi'); const cleanValue = (value: string) => value.replace(invalidCharsRe, ''); -const validCarNumberInputRe = new RegExp(`^([${VALID_LETTER}]{1}|$)((?:[0-9]|$)(?:[0-9]|$)(?:[0-9]|$))([${VALID_LETTER}]{1,2}|$)$`, 'gi'); +const validCarNumberInputRe = new RegExp(`^([${VALID_LETTER}]{1}|$)((?:[0-9]|$)(?:[0-9]|$)(?:[0-9]|$))([${VALID_LETTER}]{1,2}|$)((?:[0-9]|$)(?:[0-9]|$)(?:[0-9]|$))$`, 'gi'); const isValidInput = (cleanedValue: string) => validCarNumberInputRe.test(cleanedValue); const formatAsCarNumber = (cleanedValue: string) => { - return cleanedValue.replace(validCarNumberInputRe, (_, p1, p2, p3) => [p1, p2, p3].join(' ')).toUpperCase(); + return cleanedValue.replace(validCarNumberInputRe, (_, p1, p2, p3, p4) => [p1, p2, p3, p4].join(' ')).toUpperCase(); }; const getWithoutLastChar = (value: string) => value.substring(0, value.length - 1); @@ -25,7 +25,7 @@ export const handleInputChange = (value: string | undefined | null) => { return getWithoutLastChar(value).trim(); }; -const validCarNumberRe = new RegExp(`^[${VALID_LETTER}][0-9]{3}[${VALID_LETTER}]{2}$`, 'i'); +const validCarNumberRe = new RegExp(`^[${VALID_LETTER}][0-9]{3}[${VALID_LETTER}]{2}[0-9]{2,3}$`, 'i'); export const isValidCarNumber = (value: string) => { const cleanedValue = cleanValue(value);