UNPKG

logitar-validation

Version:

JavaScript validation library distributed by Logitar.

28 lines (27 loc) 1.27 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const logitar_js_1 = require("logitar-js"); const { isLetterOrDigit } = logitar_js_1.stringUtils; /** * A validation rule that checks if a string contains a minimum number of non-alphanumeric characters. * @param value The value to validate. * @param args The minimum number of non-alphanumeric characters. * @returns The result of the validation rule execution. */ const containsNonAlphanumeric = (value, args) => { const requiredNonAlphanumeric = Number(args); if (isNaN(requiredNonAlphanumeric) || requiredNonAlphanumeric <= 0) { return { severity: "warning", message: "The arguments should be a positive number." }; } if (typeof value !== "string") { return { severity: "error", message: "{{name}} must be a string." }; } else if (value.length > 0) { const nonAlphanumeric = [...value].filter((c) => !isLetterOrDigit(c)).length; if (nonAlphanumeric < requiredNonAlphanumeric) { return { severity: "error", message: "{{name}} must contain at least {{containsNonAlphanumeric}} non-alphanumeric character(s)." }; } } return { severity: "information" }; }; exports.default = containsNonAlphanumeric;