2017-09-22 3 views
1

私は、typescriptを使ってexcelファイルから電子メールと日付フィールドを検証する必要があります。 正規表現を使用して検証しようとしていますが、結果は正しい電子メールアドレスに対して常にfalseを返します。How to do Typescriptの正規表現を使用して電子メールの検証を行う

誰でも電子メールと日付の検証を手伝ってもらえますか?以下は

私は

コンポーネント書かれているコードです:問題は、与えられた正規表現形式である

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); 

     //retieve 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('/^(([^<>()\[\]\\.,;:\[email protected]"]+(\.[^<>()\[\]\\.,;:\[email protected]"]+)*)|(".+"))@((\[[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"); 
      } 
     ); 
    } 
} 
+0

実際に私は上記のリンクからコードをコピーしています。 – user3301440

+0

あなたのコードの出力は何ですか?それは間違って検証されますか?または全く検証しないか?コンソールのエラー? – prabushitha

+0

エラーなし!それはちょうど正しい電子メールアドレスのために偽を返す – user3301440

答えて

3

を。このような引用符( ')を付けないでください

regexp = new RegExp(/^(([^<>()\[\]\\.,;:\[email protected]"]+(\.[^<>()\[\]\\.,;:\[email protected]"]+)*)|(".+"))@((\[[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,}))$/); 
+0

ええ..働いて...ありがとう – user3301440

+0

英語以外の何かのために働かないかもしれません。私が使っているものを投稿します。 –

関連する問題