ng2-validators
Version:
An implementation of angular validators for Angular 2
151 lines • 5.79 kB
JavaScript
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