angular2-boiler-plate
Version:
Angular 2 Boiler plate that integrated with WebPack, TypeScript, DatePicker, RxJs for Reactive Extensions in Java Script , Karma , Jasmine for unit testing , WebKit ,protractor e2e testing
49 lines (44 loc) • 1.37 kB
text/typescript
import { FormBase } from './sui.util.formBase';
import { Injectable } from '@angular/core';
()
export class ValidatiorService {
checkValidEmail(email: string): boolean {
let emailReg = /^(([^<>()\[\]\\.,;:\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,}))$/;
return emailReg.test(email);
}
checkRequired(field: FormBase): ValidatorModal {
let vm = new ValidatorModal();
if (field.required) {
if (field.value) {
if (field.value === '') {
vm.valid = false;
vm.errorMessage = field.label + ' is required';
} else {
vm.valid = true;
}
} else {
vm.valid = false;
vm.errorMessage = field.label + ' is required';
}
} else {
vm.valid = true;
}
return vm;
}
checkFieldValid(field: FormBase): ValidatorModal {
let reqValid = this.checkRequired(field);
if (reqValid.valid) {
if (field.type === 'email') {
let vm = new ValidatorModal();
vm.valid = this.checkValidEmail(field.value);
vm.errorMessage = 'Invalid Email Address';
return vm;
}
}
return reqValid;
}
}
export class ValidatorModal {
valid: boolean = false;
errorMessage: string = '';
}