logitar-validation
Version:
JavaScript validation library distributed by Logitar.
28 lines (27 loc) • 1.27 kB
JavaScript
;
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;