UNPKG

ng2-validators

Version:

An implementation of angular validators for Angular 2

151 lines 5.79 kB
import { Util } from './../util'; // tslint:disable-next-line:variable-name var PasswordValidators = (function () { function PasswordValidators() { } PasswordValidators.repeatCharacterRegexRule = function (repeatCount) { var validator = function (control) { if (Util.isNotPresent(control)) return undefined; var repeatDec = repeatCount - 1; var pattern = '([^\\x00-\\x1F])\\1{' + repeatDec + '}'; if (control.value !== '' && new RegExp(pattern).test(control.value)) { return { 'repeatCharacterRegexRule': { 'repeatCount': repeatCount } }; } return undefined; }; return validator; }; ; PasswordValidators.allowedCharacterRule = function (allowedChars) { var validator = function (control) { if (Util.isNotPresent(control)) return undefined; var value = control.value; var valid = true; var invalidChars = []; for (var _i = 0, value_1 = value; _i < value_1.length; _i++) { var char = value_1[_i]; if (allowedChars.indexOf(char) === -1) { valid = false; if (invalidChars.indexOf(char) === -1) { invalidChars.push(char); } } } if (!valid) { return { 'allowedCharacterRule': { 'invalidChars': invalidChars, 'allowedChars': allowedChars } }; } return undefined; }; return validator; }; ; PasswordValidators.alphabeticalCharacterRule = function (amount) { var validator = function (control) { if (Util.isNotPresent(control)) return undefined; var value = control.value; if (value.length === 0) { return undefined; } var pattern = /[^A-Za-z]+/g; var stripped = value.replace(pattern, ''); if (stripped.length < amount) { return { 'alphabeticalCharacterRule': { 'required': amount, 'actual': stripped.length } }; } return undefined; }; return validator; }; ; PasswordValidators.digitCharacterRule = function (amount) { var validator = function (control) { if (Util.isNotPresent(control)) return undefined; var value = control.value; if (value.length === 0) { return undefined; } var pattern = /[^0-9\.]+/g; var stripped = value.replace(pattern, ''); if (stripped.length < amount) { return { 'digitCharacterRule': { 'required': amount, 'actual': stripped.length } }; } return undefined; }; return validator; }; ; PasswordValidators.lowercaseCharacterRule = function (amount) { var validator = function (control) { if (Util.isNotPresent(control)) return undefined; var value = control.value; if (value.length === 0) { return undefined; } var pattern = /[^a-z]+/g; var stripped = value.replace(pattern, ''); if (stripped.length < amount) { return { 'lowercaseCharacterRule': { 'required': amount, 'actual': stripped.length } }; } return undefined; }; return validator; }; ; PasswordValidators.uppercaseCharacterRule = function (amount) { var validator = function (control) { if (Util.isNotPresent(control)) return undefined; var value = control.value; if (value.length === 0) { return undefined; } var pattern = /[^A-Z]+/g; var stripped = value.replace(pattern, ''); if (stripped.length < amount) { return { 'uppercaseCharacterRule': { 'required': amount, 'actual': stripped.length } }; } return undefined; }; return validator; }; ; PasswordValidators.specialCharacterRule = function (amount) { var validator = function (control) { if (Util.isNotPresent(control)) return undefined; var value = control.value; if (value.length === 0) { return undefined; } var pattern = /[\w\s]+/g; var stripped = value.replace(pattern, ''); if (stripped.length < amount) { return { 'specialCharacterRule': { 'required': amount, 'actual': stripped.length } }; } return undefined; }; return validator; }; ; PasswordValidators.mismatchedPasswords = function (passwordControlName, confirmPasswordControlName) { var validator = function (group) { var newPasswordValue = group.get(passwordControlName ? passwordControlName : 'newPassword').value; var newPasswordConfirmValue = group.get(confirmPasswordControlName ? confirmPasswordControlName : 'confirmPassword').value; if (newPasswordValue !== newPasswordConfirmValue) { group.get(confirmPasswordControlName ? confirmPasswordControlName : 'confirmPassword') .setErrors({ 'mismatchedPasswords': true }); return { 'mismatchedPasswords': true }; } return undefined; }; return validator; }; ; return PasswordValidators; }()); export { PasswordValidators }; //# sourceMappingURL=password-validators.js.map