Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to do Email validation using Regular expression in Typescript [duplicate]

I have an requirement to validate email and date fields from an Excel file using typescript Angular app.

And I am trying to validate using regular expression but the result returns always false for a correct email address.

Can anyone help me to validate the email and dates?

Below is the code I have written

Component:

import {  Component } from '@angular/core'; import * as FileSaver from 'file-saver'; import * as XLSX from 'xlsx'; import {UploadService} from '../services//upload.service';   import { FileUploader ,FileItem,ParsedResponseHeaders,FileLikeObject} from 'ng2-file-upload';  import { SpotCheck } from '../models/SpotCheckFields';    @Component ({       selector: 'my-app',       templateUrl:'./excelUpload.html',     providers:[UploadService] })    export class ExcelUploadComponent  {       public SpotChecklist: SpotCheck[];     public project_master:any[];      uploader:FileUploader;      constructor(private uploadservice: UploadService ){         this.SpotChecklist=[];         this.project_master=[];     }     ngOnInit(): void {         this.uploader = new FileUploader({             url: 'http://localhost:5000/upload'             // headers: [{name:'Accept', value:'application/json'}],             // autoUpload: true,         });         this.uploader.onErrorItem = (item, response, status, headers) => this.onErrorItem(item, response, status, headers);         this.uploader.onSuccessItem = (item, response, status, headers) => this.onSuccessItem(item, response, status, headers);          // retrieve projectmaster details         this.getProjectMaster("","SELECT PROJECT MASTER");     }      onSuccessItem(item: FileItem, response: string, status: number, headers: ParsedResponseHeaders): any {         //console.log("onSuccessItem " + status, response, item);           this.SpotChecklist = JSON.parse(response); //success server response          var data = this.validateRow(this.SpotChecklist);          console.log(data);       }      onErrorItem(item: FileItem, response: string, status: number, headers: ParsedResponseHeaders): any {         let error = JSON.parse(response); //error server response     }      validateRow(lst:any[]) : SpotCheck[]     {         var i:number;         for(i=0;i<lst.length ;i++)         {             var validation_message:string="";             var blnErrOccured:boolean=false;              if(!this.isEmail(lst[i].RESPONSIBLE_PERSON_EMAIL_ID))             {                 validation_message=validation_message+ "," +"RESPONSIBLE_PERSON_EMAIL_ID is invalid"                 blnErrOccured=true;             }              lst[i].VALIDATION_RESULT=validation_message;         }         return lst;     }      isDate(date:string) {         // return (new Date(date) !== "Invalid Date") && !isNaN(new Date(date));     }      isEmail(search:string):boolean     {         var  serchfind:boolean;          regexp = new RegExp('/^(([^<>()\[\]\\.,;:\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,}))$/');          serchfind = regexp.test(search);          console.log(serchfind)         return serchfind     }      getProjectMaster(project_code:string,Flag:string):any     {           this.uploadservice.getProjectMaster(project_code,Flag).subscribe(             response=> {                 this.project_master= response[0];                 return response;             },             error=> {                 console.log("ERROR: ",error);                 console.log(error.json()); //gives the object object             },             () => {                 console.log("Completed");             }         );     } } 
like image 761
user3301440 Avatar asked Sep 22 '17 18:09

user3301440


People also ask

Which regex can be used for single email validation?

Email Regex – Simple Validation. This example uses a simple regex ^(. +)@(\S+)$ to validate an email address. It checks to ensure the email contains at least one character, an @ symbol, then a non whitespace character.

Should you validate email with regex?

Don't use regexes for validating emails, unless you have a good reason not to. Use a verification mail instead. In most cases, a regex that simply checks that the string contains an @ is enough.


Video Answer


1 Answers

Problem is with the regex format given. Give it without quotes (') like this

regexp = new RegExp(/^(([^<>()\[\]\\.,;:\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,}))$/); 
like image 168
prabushitha Avatar answered Sep 19 '22 10:09

prabushitha