@jsbailey/reactive-form-validators
Version:
[](https://badge.fury.io/js/%40rxweb%2Freactive-form-validators) [](https://gitter.im/rxweb-project/rxweb?utm_source=badge
137 lines (136 loc) • 11.8 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
import * as tslib_1 from "tslib";
import { RegExRule } from "./regex-rules";
/** @type {?} */
var ALPHABET = "alphabet";
/** @type {?} */
var DIGIT = "digit";
/** @type {?} */
var CONTAINS = "contains";
/** @type {?} */
var LOWERCASE = "lowerCase";
/** @type {?} */
var UPPERCASE = "upperCase";
/** @type {?} */
var SPECIAL_CHARACTER = "specialCharacter";
/** @type {?} */
var MIN_LENGTH = "minLength";
/** @type {?} */
var MAX_LENGTH = "maxLength";
var RegexValidator = /** @class */ (function () {
function RegexValidator() {
}
/**
* @param {?} value
* @param {?} regex
* @return {?}
*/
RegexValidator.isExits = /**
* @param {?} value
* @param {?} regex
* @return {?}
*/
function (value, regex) {
return value.match(regex) != null;
};
/**
* @param {?} value
* @param {?} regex
* @return {?}
*/
RegexValidator.isValid = /**
* @param {?} value
* @param {?} regex
* @return {?}
*/
function (value, regex) {
return regex.test(value);
};
/**
* @param {?} value
* @return {?}
*/
RegexValidator.isNotBlank = /**
* @param {?} value
* @return {?}
*/
function (value) {
return value != undefined && value != "" && value != null;
};
/**
* @param {?} passwordValidation
* @param {?} value
* @return {?}
*/
RegexValidator.isValidPassword = /**
* @param {?} passwordValidation
* @param {?} value
* @return {?}
*/
function (passwordValidation, value) {
/** @type {?} */
var isValid = false;
/** @type {?} */
var jObject = {};
/** @type {?} */
var keyName = "status";
/** @type {?} */
var objectProperties = Object.getOwnPropertyNames(passwordValidation);
try {
for (var objectProperties_1 = tslib_1.__values(objectProperties), objectProperties_1_1 = objectProperties_1.next(); !objectProperties_1_1.done; objectProperties_1_1 = objectProperties_1.next()) {
var propertyName = objectProperties_1_1.value;
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;
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (objectProperties_1_1 && !objectProperties_1_1.done && (_a = objectProperties_1.return)) _a.call(objectProperties_1);
}
finally { if (e_1) throw e_1.error; }
}
return { isValid: isValid, keyName: keyName };
var e_1, _a;
};
return RegexValidator;
}());
export { RegexValidator };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnZXgtdmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGpzYmFpbGV5L3JlYWN0aXZlLWZvcm0tdmFsaWRhdG9ycy8iLCJzb3VyY2VzIjpbInV0aWwvcmVnZXgtdmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHMUMsSUFBTSxRQUFRLEdBQVcsVUFBVSxDQUFDOztBQUNwQyxJQUFNLEtBQUssR0FBVyxPQUFPLENBQUM7O0FBQzlCLElBQU0sUUFBUSxHQUFXLFVBQVUsQ0FBQzs7QUFDcEMsSUFBTSxTQUFTLEdBQVcsV0FBVyxDQUFDOztBQUN0QyxJQUFNLFNBQVMsR0FBVyxXQUFXLENBQUM7O0FBQ3RDLElBQU0saUJBQWlCLEdBQVcsa0JBQWtCLENBQUM7O0FBQ3JELElBQU0sVUFBVSxHQUFXLFdBQVcsQ0FBQzs7QUFDdkMsSUFBTSxVQUFVLEdBQVcsV0FBVyxDQUFDO0FBR3ZDLElBQUE7Ozs7Ozs7O0lBQ1csc0JBQU87Ozs7O0lBQWQsVUFBZSxLQUFVLEVBQUUsS0FBYTtRQUNwQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUM7S0FDckM7Ozs7OztJQUNNLHNCQUFPOzs7OztJQUFkLFVBQWUsS0FBVSxFQUFFLEtBQWE7UUFDcEMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDNUI7Ozs7O0lBRU0seUJBQVU7Ozs7SUFBakIsVUFBa0IsS0FBVTtRQUN4QixNQUFNLENBQUMsS0FBSyxJQUFJLFNBQVMsSUFBSSxLQUFLLElBQUksRUFBRSxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUU7S0FDOUQ7Ozs7OztJQUVNLDhCQUFlOzs7OztJQUF0QixVQUF1QixrQkFBc0MsRUFBRSxLQUFhOztRQUN4RSxJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUM7O1FBQ3BCLElBQUksT0FBTyxHQUEyQixFQUFFLENBQUM7O1FBQ3pDLElBQUksT0FBTyxHQUFHLFFBQVEsQ0FBQzs7UUFDdkIsSUFBSSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsa0JBQWtCLENBQUMsQ0FBQTs7WUFDckUsR0FBRyxDQUFDLENBQXFCLElBQUEscUJBQUEsaUJBQUEsZ0JBQWdCLENBQUEsa0RBQUE7Z0JBQXBDLElBQUksWUFBWSw2QkFBQTtnQkFDakIsTUFBTSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztvQkFDbkIsS0FBSyxRQUFRO3dCQUNULE9BQU8sR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxTQUFTLFVBQU8sQ0FBQzt3QkFDekQsT0FBTyxHQUFHLFFBQVEsQ0FBQzt3QkFDbkIsS0FBSyxDQUFDO29CQUNWLEtBQUssS0FBSzt3QkFDTixPQUFPLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsU0FBUyxpQkFBYyxDQUFDO3dCQUNoRSxPQUFPLEdBQUcsS0FBSyxDQUFDO3dCQUNoQixLQUFLLENBQUM7b0JBQ1YsS0FBSyxRQUFRO3dCQUNULE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7d0JBQzVELE9BQU8sR0FBRyxRQUFRLENBQUM7d0JBQ25CLEtBQUssQ0FBQztvQkFDVixLQUFLLFNBQVM7d0JBQ1YsT0FBTyxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLFNBQVMsY0FBVyxDQUFDO3dCQUM3RCxPQUFPLEdBQUcsU0FBUyxDQUFDO3dCQUNwQixLQUFLLENBQUM7b0JBQ1YsS0FBSyxTQUFTO3dCQUNWLE9BQU8sR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxTQUFTLGNBQVcsQ0FBQzt3QkFDN0QsT0FBTyxHQUFHLFNBQVMsQ0FBQzt3QkFDcEIsS0FBSyxDQUFDO29CQUNWLEtBQUssaUJBQWlCO3dCQUNsQixPQUFPLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsU0FBUyxxQkFBa0IsQ0FBQzt3QkFDcEUsT0FBTyxHQUFHLGlCQUFpQixDQUFDO3dCQUM1QixLQUFLLENBQUM7b0JBQ1YsS0FBSyxVQUFVO3dCQUNYLE9BQU8sR0FBRyxLQUFLLENBQUMsTUFBTSxJQUFJLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxDQUFDO3dCQUMzRCxPQUFPLEdBQUcsVUFBVSxDQUFDO3dCQUNyQixLQUFLLENBQUM7b0JBQ1YsS0FBSyxVQUFVO3dCQUNYLE9BQU8sR0FBRyxLQUFLLENBQUMsTUFBTSxJQUFJLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxDQUFDO3dCQUMzRCxPQUFPLEdBQUcsVUFBVSxDQUFDO3dCQUNyQixLQUFLLENBQUM7aUJBQ2I7Z0JBQ0QsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7b0JBQ1QsS0FBSyxDQUFDO2FBQ2I7Ozs7Ozs7OztRQUNELE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFBOztLQUNoRDt5QkF0RUw7SUF1RUMsQ0FBQTtBQXpERCwwQkF5REMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYXNzd29yZFZhbGlkYXRpb24gfSBmcm9tIFwiLi4vbW9kZWxzL3Bhc3N3b3JkLXZhbGlkYXRpb24ubW9kZWxcIjtcclxuaW1wb3J0IHsgUmVnRXhSdWxlIH0gZnJvbSBcIi4vcmVnZXgtcnVsZXNcIjtcclxuaW1wb3J0IHsgUmVhY3RpdmVGb3JtQ29uZmlnIH0gZnJvbSBcIi4vcmVhY3RpdmUtZm9ybS1jb25maWdcIjtcclxuXHJcbmNvbnN0IEFMUEhBQkVUOiBzdHJpbmcgPSBcImFscGhhYmV0XCI7XHJcbmNvbnN0IERJR0lUOiBzdHJpbmcgPSBcImRpZ2l0XCI7XHJcbmNvbnN0IENPTlRBSU5TOiBzdHJpbmcgPSBcImNvbnRhaW5zXCI7XHJcbmNvbnN0IExPV0VSQ0FTRTogc3RyaW5nID0gXCJsb3dlckNhc2VcIjtcclxuY29uc3QgVVBQRVJDQVNFOiBzdHJpbmcgPSBcInVwcGVyQ2FzZVwiO1xyXG5jb25zdCBTUEVDSUFMX0NIQVJBQ1RFUjogc3RyaW5nID0gXCJzcGVjaWFsQ2hhcmFjdGVyXCI7XHJcbmNvbnN0IE1JTl9MRU5HVEg6IHN0cmluZyA9IFwibWluTGVuZ3RoXCI7XHJcbmNvbnN0IE1BWF9MRU5HVEg6IHN0cmluZyA9IFwibWF4TGVuZ3RoXCI7XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIFJlZ2V4VmFsaWRhdG9yIHtcclxuICAgIHN0YXRpYyBpc0V4aXRzKHZhbHVlOiBhbnksIHJlZ2V4OiBSZWdFeHApOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdmFsdWUubWF0Y2gocmVnZXgpICE9IG51bGw7XHJcbiAgICB9XHJcbiAgICBzdGF0aWMgaXNWYWxpZCh2YWx1ZTogYW55LCByZWdleDogUmVnRXhwKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHJlZ2V4LnRlc3QodmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBpc05vdEJsYW5rKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdmFsdWUgIT0gdW5kZWZpbmVkICYmIHZhbHVlICE9IFwiXCIgJiYgdmFsdWUgIT0gbnVsbCA7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGlzVmFsaWRQYXNzd29yZChwYXNzd29yZFZhbGlkYXRpb246IFBhc3N3b3JkVmFsaWRhdGlvbiwgdmFsdWU6IHN0cmluZyk6IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xyXG4gICAgICAgIGxldCBpc1ZhbGlkID0gZmFsc2U7XHJcbiAgICAgICAgbGV0IGpPYmplY3Q6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7fTtcclxuICAgICAgICBsZXQga2V5TmFtZSA9IFwic3RhdHVzXCI7XHJcbiAgICAgICAgbGV0IG9iamVjdFByb3BlcnRpZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhwYXNzd29yZFZhbGlkYXRpb24pXHJcbiAgICAgICAgZm9yIChsZXQgcHJvcGVydHlOYW1lIG9mIG9iamVjdFByb3BlcnRpZXMpIHtcclxuICAgICAgICAgICAgc3dpdGNoIChwcm9wZXJ0eU5hbWUpIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgQUxQSEFCRVQ6XHJcbiAgICAgICAgICAgICAgICAgICAgaXNWYWxpZCA9IFJlZ2V4VmFsaWRhdG9yLmlzRXhpdHModmFsdWUsIFJlZ0V4UnVsZS5hbHBoYSk7XHJcbiAgICAgICAgICAgICAgICAgICAga2V5TmFtZSA9IEFMUEhBQkVUO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBESUdJVDpcclxuICAgICAgICAgICAgICAgICAgICBpc1ZhbGlkID0gUmVnZXhWYWxpZGF0b3IuaXNWYWxpZCh2YWx1ZSwgUmVnRXhSdWxlLmlzRGlnaXRFeGl0cyk7XHJcbiAgICAgICAgICAgICAgICAgICAga2V5TmFtZSA9IERJR0lUO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBDT05UQUlOUzpcclxuICAgICAgICAgICAgICAgICAgICBpc1ZhbGlkID0gdmFsdWUuaW5kZXhPZihwYXNzd29yZFZhbGlkYXRpb25bQ09OVEFJTlNdKSAhPSAtMTtcclxuICAgICAgICAgICAgICAgICAgICBrZXlOYW1lID0gQ09OVEFJTlM7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIExPV0VSQ0FTRTpcclxuICAgICAgICAgICAgICAgICAgICBpc1ZhbGlkID0gUmVnZXhWYWxpZGF0b3IuaXNWYWxpZCh2YWx1ZSwgUmVnRXhSdWxlLmxvd2VyQ2FzZSk7XHJcbiAgICAgICAgICAgICAgICAgICAga2V5TmFtZSA9IExPV0VSQ0FTRTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgVVBQRVJDQVNFOlxyXG4gICAgICAgICAgICAgICAgICAgIGlzVmFsaWQgPSBSZWdleFZhbGlkYXRvci5pc1ZhbGlkKHZhbHVlLCBSZWdFeFJ1bGUudXBwZXJDYXNlKTtcclxuICAgICAgICAgICAgICAgICAgICBrZXlOYW1lID0gVVBQRVJDQVNFO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBTUEVDSUFMX0NIQVJBQ1RFUjpcclxuICAgICAgICAgICAgICAgICAgICBpc1ZhbGlkID0gUmVnZXhWYWxpZGF0b3IuaXNFeGl0cyh2YWx1ZSwgUmVnRXhSdWxlLnNwZWNpYWxDaGFyYWN0ZXIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGtleU5hbWUgPSBTUEVDSUFMX0NIQVJBQ1RFUjtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgTUlOX0xFTkdUSDpcclxuICAgICAgICAgICAgICAgICAgICBpc1ZhbGlkID0gdmFsdWUubGVuZ3RoID49IHBhc3N3b3JkVmFsaWRhdGlvbltwcm9wZXJ0eU5hbWVdO1xyXG4gICAgICAgICAgICAgICAgICAgIGtleU5hbWUgPSBNSU5fTEVOR1RIO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBNQVhfTEVOR1RIOlxyXG4gICAgICAgICAgICAgICAgICAgIGlzVmFsaWQgPSB2YWx1ZS5sZW5ndGggPD0gcGFzc3dvcmRWYWxpZGF0aW9uW3Byb3BlcnR5TmFtZV07XHJcbiAgICAgICAgICAgICAgICAgICAga2V5TmFtZSA9IE1BWF9MRU5HVEg7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKCFpc1ZhbGlkKVxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB7IGlzVmFsaWQ6IGlzVmFsaWQsIGtleU5hbWU6IGtleU5hbWUgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==