Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/lib/kit/i18n/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@
"label_error-space-start": "Value must not start with a space",
"label_error-zero-start": "Value must not start with a zero",
"label_error-dot-end": "Value must not end with a dot",
"label_error-invalid-zero-format": "Invalid zero value format",
"label_error-zero-end": "Value must not end with a zero",
"label_delete": "Delete",
"button_cancel": "Close",
"button-upload_file": "Upload file",
Expand Down
2 changes: 2 additions & 0 deletions src/lib/kit/i18n/ru.json
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@
"label_error-space-start": "Значение не должно начинаться с пробела",
"label_error-zero-start": "Значение не должно начинаться с нуля",
"label_error-dot-end": "Значение не должно заканчиваться точкой",
"label_error-invalid-zero-format": "Неверный формат значения нуля",
"label_error-zero-end": "Значение не должно заканчиваться нулем",
"label_delete": "Удалить",
"button_cancel": "Закрыть",
"button-upload_file": "Загрузить файл",
Expand Down
2 changes: 2 additions & 0 deletions src/lib/kit/validators/messages.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ const getErrorMessages = (): ErrorMessagesType => ({
SPACE_END: i18n('label_error-space-end'),
DOT_END: i18n('label_error-dot-end'),
ZERO_START: i18n('label_error-zero-start'),
INVALID_ZERO_FORMAT: i18n('label_error-invalid-zero-format'),
ZERO_END: i18n('label_error-zero-end'),
});

export let ErrorMessages: ErrorMessagesType = getErrorMessages();
Expand Down
2 changes: 2 additions & 0 deletions src/lib/kit/validators/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,6 @@ export interface ErrorMessagesType {
SPACE_END: string;
DOT_END: string;
ZERO_START: string;
INVALID_ZERO_FORMAT: string;
ZERO_END: string;
}
20 changes: 20 additions & 0 deletions src/lib/kit/validators/validators.ts
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,8 @@ export interface GetNumberValidatorParams extends CommonValidatorParams {
ignoreIntCheck?: boolean;
ignoreDotEnd?: boolean;
ignoreZeroStart?: boolean;
ignoreInvalidZeroFormat?: boolean;
ignoreZeroEnd?: boolean;
}

export const getNumberValidator = (params: GetNumberValidatorParams = {}) => {
Expand All @@ -97,6 +99,8 @@ export const getNumberValidator = (params: GetNumberValidatorParams = {}) => {
ignoreIntCheck,
ignoreDotEnd,
ignoreZeroStart,
ignoreInvalidZeroFormat,
ignoreZeroEnd,
customErrorMessages,
} = params;

Expand Down Expand Up @@ -136,6 +140,22 @@ export const getNumberValidator = (params: GetNumberValidatorParams = {}) => {
) {
return errorMessages.ZERO_START;
}

if (
!ignoreInvalidZeroFormat &&
stringValue.trim().length > 1 &&
Number(stringValue.trim()) === 0
) {
return errorMessages.INVALID_ZERO_FORMAT;
}

if (
!ignoreZeroEnd &&
!isInt(stringValue) &&
stringValue[stringValue.length - 1] === '0'
) {
return errorMessages.ZERO_END;
}
}

if (
Expand Down