validator-list
Version:
29 lines (22 loc) • 1.03 kB
text/typescript
import * as _ from 'lodash';
import { BaseValidator, IBaseValidatorOptions } from './base-validator';
export class EmailValidator extends BaseValidator {
pattern = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
message: string = '{attribute} is not a valid email address.';
constructor(attributeLabel: string, value, options?: IBaseValidatorOptions) {
super(attributeLabel, value, options);
this.setOptions(options);
}
protected getOptionNameList(...childrenList): string[] {
return super.getOptionNameList(...childrenList, []);
}
validate(): string | boolean {
if (!this.isAvailableForValidation()) {
return false;
}
if (!_.isString(this.value) || this.value.length > 320 || !this.pattern.test(this.value)) {
return this.message.replace('{attribute}', this.attributeLabel);
}
return false;
}
}