UNPKG

@jsbailey/reactive-form-validators

Version:

[![npm version](https://badge.fury.io/js/%40rxweb%2Freactive-form-validators.svg)](https://badge.fury.io/js/%40rxweb%2Freactive-form-validators) [![Gitter](https://badges.gitter.im/rx-web/Lobby.svg)](https://gitter.im/rxweb-project/rxweb?utm_source=badge

102 lines (101 loc) 10.5 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ import { RegExRule } from "./regex-rules"; /** @type {?} */ const ALPHABET = "alphabet"; /** @type {?} */ const DIGIT = "digit"; /** @type {?} */ const CONTAINS = "contains"; /** @type {?} */ const LOWERCASE = "lowerCase"; /** @type {?} */ const UPPERCASE = "upperCase"; /** @type {?} */ const SPECIAL_CHARACTER = "specialCharacter"; /** @type {?} */ const MIN_LENGTH = "minLength"; /** @type {?} */ const MAX_LENGTH = "maxLength"; export class RegexValidator { /** * @param {?} value * @param {?} regex * @return {?} */ static isExits(value, regex) { return value.match(regex) != null; } /** * @param {?} value * @param {?} regex * @return {?} */ static isValid(value, regex) { return regex.test(value); } /** * @param {?} value * @return {?} */ static isNotBlank(value) { return value != undefined && value != "" && value != null; } /** * @param {?} passwordValidation * @param {?} value * @return {?} */ static isValidPassword(passwordValidation, value) { /** @type {?} */ let isValid = false; /** @type {?} */ let jObject = {}; /** @type {?} */ let keyName = "status"; /** @type {?} */ let objectProperties = Object.getOwnPropertyNames(passwordValidation); for (let propertyName of objectProperties) { switch (propertyName) { case ALPHABET: isValid = RegexValidator.isExits(value, RegExRule["alpha"]); keyName = ALPHABET; break; case DIGIT: isValid = RegexValidator.isValid(value, RegExRule["isDigitExits"]); keyName = DIGIT; break; case CONTAINS: isValid = value.indexOf(passwordValidation[CONTAINS]) != -1; keyName = CONTAINS; break; case LOWERCASE: isValid = RegexValidator.isValid(value, RegExRule["lowerCase"]); keyName = LOWERCASE; break; case UPPERCASE: isValid = RegexValidator.isValid(value, RegExRule["upperCase"]); keyName = UPPERCASE; break; case SPECIAL_CHARACTER: isValid = RegexValidator.isExits(value, RegExRule["specialCharacter"]); keyName = SPECIAL_CHARACTER; break; case MIN_LENGTH: isValid = value.length >= passwordValidation[propertyName]; keyName = MIN_LENGTH; break; case MAX_LENGTH: isValid = value.length <= passwordValidation[propertyName]; keyName = MAX_LENGTH; break; } if (!isValid) break; } return { isValid: isValid, keyName: keyName }; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnZXgtdmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGpzYmFpbGV5L3JlYWN0aXZlLWZvcm0tdmFsaWRhdG9ycy8iLCJzb3VyY2VzIjpbInV0aWwvcmVnZXgtdmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUcxQyxNQUFNLFFBQVEsR0FBVyxVQUFVLENBQUM7O0FBQ3BDLE1BQU0sS0FBSyxHQUFXLE9BQU8sQ0FBQzs7QUFDOUIsTUFBTSxRQUFRLEdBQVcsVUFBVSxDQUFDOztBQUNwQyxNQUFNLFNBQVMsR0FBVyxXQUFXLENBQUM7O0FBQ3RDLE1BQU0sU0FBUyxHQUFXLFdBQVcsQ0FBQzs7QUFDdEMsTUFBTSxpQkFBaUIsR0FBVyxrQkFBa0IsQ0FBQzs7QUFDckQsTUFBTSxVQUFVLEdBQVcsV0FBVyxDQUFDOztBQUN2QyxNQUFNLFVBQVUsR0FBVyxXQUFXLENBQUM7QUFHdkMsTUFBTTs7Ozs7O0lBQ0YsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFVLEVBQUUsS0FBYTtRQUNwQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUM7S0FDckM7Ozs7OztJQUNELE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBVSxFQUFFLEtBQWE7UUFDcEMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDNUI7Ozs7O0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFVO1FBQ3hCLE1BQU0sQ0FBQyxLQUFLLElBQUksU0FBUyxJQUFJLEtBQUssSUFBSSxFQUFFLElBQUksS0FBSyxJQUFJLElBQUksQ0FBRTtLQUM5RDs7Ozs7O0lBRUQsTUFBTSxDQUFDLGVBQWUsQ0FBQyxrQkFBc0MsRUFBRSxLQUFhOztRQUN4RSxJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUM7O1FBQ3BCLElBQUksT0FBTyxHQUEyQixFQUFFLENBQUM7O1FBQ3pDLElBQUksT0FBTyxHQUFHLFFBQVEsQ0FBQzs7UUFDdkIsSUFBSSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtRQUNyRSxHQUFHLENBQUMsQ0FBQyxJQUFJLFlBQVksSUFBSSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7WUFDeEMsTUFBTSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztnQkFDbkIsS0FBSyxRQUFRO29CQUNULE9BQU8sR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxTQUFTLFVBQU8sQ0FBQztvQkFDekQsT0FBTyxHQUFHLFFBQVEsQ0FBQztvQkFDbkIsS0FBSyxDQUFDO2dCQUNWLEtBQUssS0FBSztvQkFDTixPQUFPLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsU0FBUyxpQkFBYyxDQUFDO29CQUNoRSxPQUFPLEdBQUcsS0FBSyxDQUFDO29CQUNoQixLQUFLLENBQUM7Z0JBQ1YsS0FBSyxRQUFRO29CQUNULE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7b0JBQzVELE9BQU8sR0FBRyxRQUFRLENBQUM7b0JBQ25CLEtBQUssQ0FBQztnQkFDVixLQUFLLFNBQVM7b0JBQ1YsT0FBTyxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLFNBQVMsY0FBVyxDQUFDO29CQUM3RCxPQUFPLEdBQUcsU0FBUyxDQUFDO29CQUNwQixLQUFLLENBQUM7Z0JBQ1YsS0FBSyxTQUFTO29CQUNWLE9BQU8sR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxTQUFTLGNBQVcsQ0FBQztvQkFDN0QsT0FBTyxHQUFHLFNBQVMsQ0FBQztvQkFDcEIsS0FBSyxDQUFDO2dCQUNWLEtBQUssaUJBQWlCO29CQUNsQixPQUFPLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsU0FBUyxxQkFBa0IsQ0FBQztvQkFDcEUsT0FBTyxHQUFHLGlCQUFpQixDQUFDO29CQUM1QixLQUFLLENBQUM7Z0JBQ1YsS0FBSyxVQUFVO29CQUNYLE9BQU8sR0FBRyxLQUFLLENBQUMsTUFBTSxJQUFJLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxDQUFDO29CQUMzRCxPQUFPLEdBQUcsVUFBVSxDQUFDO29CQUNyQixLQUFLLENBQUM7Z0JBQ1YsS0FBSyxVQUFVO29CQUNYLE9BQU8sR0FBRyxLQUFLLENBQUMsTUFBTSxJQUFJLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxDQUFDO29CQUMzRCxPQUFPLEdBQUcsVUFBVSxDQUFDO29CQUNyQixLQUFLLENBQUM7YUFDYjtZQUNELEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO2dCQUNULEtBQUssQ0FBQztTQUNiO1FBQ0QsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUE7S0FDaEQ7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBhc3N3b3JkVmFsaWRhdGlvbiB9IGZyb20gXCIuLi9tb2RlbHMvcGFzc3dvcmQtdmFsaWRhdGlvbi5tb2RlbFwiO1xyXG5pbXBvcnQgeyBSZWdFeFJ1bGUgfSBmcm9tIFwiLi9yZWdleC1ydWxlc1wiO1xyXG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1Db25maWcgfSBmcm9tIFwiLi9yZWFjdGl2ZS1mb3JtLWNvbmZpZ1wiO1xyXG5cclxuY29uc3QgQUxQSEFCRVQ6IHN0cmluZyA9IFwiYWxwaGFiZXRcIjtcclxuY29uc3QgRElHSVQ6IHN0cmluZyA9IFwiZGlnaXRcIjtcclxuY29uc3QgQ09OVEFJTlM6IHN0cmluZyA9IFwiY29udGFpbnNcIjtcclxuY29uc3QgTE9XRVJDQVNFOiBzdHJpbmcgPSBcImxvd2VyQ2FzZVwiO1xyXG5jb25zdCBVUFBFUkNBU0U6IHN0cmluZyA9IFwidXBwZXJDYXNlXCI7XHJcbmNvbnN0IFNQRUNJQUxfQ0hBUkFDVEVSOiBzdHJpbmcgPSBcInNwZWNpYWxDaGFyYWN0ZXJcIjtcclxuY29uc3QgTUlOX0xFTkdUSDogc3RyaW5nID0gXCJtaW5MZW5ndGhcIjtcclxuY29uc3QgTUFYX0xFTkdUSDogc3RyaW5nID0gXCJtYXhMZW5ndGhcIjtcclxuXHJcblxyXG5leHBvcnQgY2xhc3MgUmVnZXhWYWxpZGF0b3Ige1xyXG4gICAgc3RhdGljIGlzRXhpdHModmFsdWU6IGFueSwgcmVnZXg6IFJlZ0V4cCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB2YWx1ZS5tYXRjaChyZWdleCkgIT0gbnVsbDtcclxuICAgIH1cclxuICAgIHN0YXRpYyBpc1ZhbGlkKHZhbHVlOiBhbnksIHJlZ2V4OiBSZWdFeHApOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gcmVnZXgudGVzdCh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGlzTm90QmxhbmsodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB2YWx1ZSAhPSB1bmRlZmluZWQgJiYgdmFsdWUgIT0gXCJcIiAmJiB2YWx1ZSAhPSBudWxsIDtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgaXNWYWxpZFBhc3N3b3JkKHBhc3N3b3JkVmFsaWRhdGlvbjogUGFzc3dvcmRWYWxpZGF0aW9uLCB2YWx1ZTogc3RyaW5nKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB7XHJcbiAgICAgICAgbGV0IGlzVmFsaWQgPSBmYWxzZTtcclxuICAgICAgICBsZXQgak9iamVjdDogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xyXG4gICAgICAgIGxldCBrZXlOYW1lID0gXCJzdGF0dXNcIjtcclxuICAgICAgICBsZXQgb2JqZWN0UHJvcGVydGllcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHBhc3N3b3JkVmFsaWRhdGlvbilcclxuICAgICAgICBmb3IgKGxldCBwcm9wZXJ0eU5hbWUgb2Ygb2JqZWN0UHJvcGVydGllcykge1xyXG4gICAgICAgICAgICBzd2l0Y2ggKHByb3BlcnR5TmFtZSkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSBBTFBIQUJFVDpcclxuICAgICAgICAgICAgICAgICAgICBpc1ZhbGlkID0gUmVnZXhWYWxpZGF0b3IuaXNFeGl0cyh2YWx1ZSwgUmVnRXhSdWxlLmFscGhhKTtcclxuICAgICAgICAgICAgICAgICAgICBrZXlOYW1lID0gQUxQSEFCRVQ7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIERJR0lUOlxyXG4gICAgICAgICAgICAgICAgICAgIGlzVmFsaWQgPSBSZWdleFZhbGlkYXRvci5pc1ZhbGlkKHZhbHVlLCBSZWdFeFJ1bGUuaXNEaWdpdEV4aXRzKTtcclxuICAgICAgICAgICAgICAgICAgICBrZXlOYW1lID0gRElHSVQ7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIENPTlRBSU5TOlxyXG4gICAgICAgICAgICAgICAgICAgIGlzVmFsaWQgPSB2YWx1ZS5pbmRleE9mKHBhc3N3b3JkVmFsaWRhdGlvbltDT05UQUlOU10pICE9IC0xO1xyXG4gICAgICAgICAgICAgICAgICAgIGtleU5hbWUgPSBDT05UQUlOUztcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgTE9XRVJDQVNFOlxyXG4gICAgICAgICAgICAgICAgICAgIGlzVmFsaWQgPSBSZWdleFZhbGlkYXRvci5pc1ZhbGlkKHZhbHVlLCBSZWdFeFJ1bGUubG93ZXJDYXNlKTtcclxuICAgICAgICAgICAgICAgICAgICBrZXlOYW1lID0gTE9XRVJDQVNFO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBVUFBFUkNBU0U6XHJcbiAgICAgICAgICAgICAgICAgICAgaXNWYWxpZCA9IFJlZ2V4VmFsaWRhdG9yLmlzVmFsaWQodmFsdWUsIFJlZ0V4UnVsZS51cHBlckNhc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgIGtleU5hbWUgPSBVUFBFUkNBU0U7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIFNQRUNJQUxfQ0hBUkFDVEVSOlxyXG4gICAgICAgICAgICAgICAgICAgIGlzVmFsaWQgPSBSZWdleFZhbGlkYXRvci5pc0V4aXRzKHZhbHVlLCBSZWdFeFJ1bGUuc3BlY2lhbENoYXJhY3Rlcik7XHJcbiAgICAgICAgICAgICAgICAgICAga2V5TmFtZSA9IFNQRUNJQUxfQ0hBUkFDVEVSO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBNSU5fTEVOR1RIOlxyXG4gICAgICAgICAgICAgICAgICAgIGlzVmFsaWQgPSB2YWx1ZS5sZW5ndGggPj0gcGFzc3dvcmRWYWxpZGF0aW9uW3Byb3BlcnR5TmFtZV07XHJcbiAgICAgICAgICAgICAgICAgICAga2V5TmFtZSA9IE1JTl9MRU5HVEg7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIE1BWF9MRU5HVEg6XHJcbiAgICAgICAgICAgICAgICAgICAgaXNWYWxpZCA9IHZhbHVlLmxlbmd0aCA8PSBwYXNzd29yZFZhbGlkYXRpb25bcHJvcGVydHlOYW1lXTtcclxuICAgICAgICAgICAgICAgICAgICBrZXlOYW1lID0gTUFYX0xFTkdUSDtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoIWlzVmFsaWQpXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHsgaXNWYWxpZDogaXNWYWxpZCwga2V5TmFtZToga2V5TmFtZSB9XHJcbiAgICB9XHJcbn1cclxuIl19