2015-12-08 36 views
1

我正在寫一個JavaScript的CRM 2013年,觸發文本字段被修改時。要求是:CRM Javascript檢查無效的電子郵件格式,並輸入一個電子郵件

  1. 檢查輸入無效的電子郵件地址。警告彈出一條消息 消息。
  2. 檢查是否有多個電子郵件地址並提醒彈出消息。該字段中只允許有一個電子郵件地址。

這是我的代碼。起初,我使用分隔符來檢查電子郵件地址輸入列表,它工作。我現在刪除了需求#2的分隔符,並且它不再工作。我是否需要更改僅適用於一個電子郵件地址的正則表達式?

function EmailTest(EmailField) { 
    var Email = /^([a-zA-Z0-9_.-])[email protected]([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+/; 
    if (Email.test(EmailField)) { 
    return true; 
    } else { 
    return false; 
    } 
} 

function CheckEmailString(context) { 
    try { 
    //getting the input 
    var EmailString = context.getEventSource().getValue(); 
    if (EmailString != null) { 
     var Flag = true; 

     if (!EmailTest(EmailString)) { 
     Flag = false; 
     } 
     //} 
     if (Flag != true) { 
     alert("Please check if the email might contain invalid format. Note that only one email address is allowed for this."); 
     //prevents users from saving the form if not valid 
     //context.getEventArgs().preventDefault(); 
     //Xrm.Page.context.getEventArgs.preventDefault(); 
     } 
    } 
    } catch (err) { 
    alert(err.message); 
    } 
} 
+0

您檢查哪個字段?你能開始檢查空格或兩個「@」字符或什麼? –

回答

1

您目前使用只要在文本框中一個有效的電子郵件地址開始將測試真正的正則表達式(即[email protected]) - 你需要包括結束串在表達式的結束符$檢查沒有別的如下搭配:

/^([a-zA-Z0-9_.-])[email protected]([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+$/;

進一步就此,正則表達式可以多一點精益製造。我建議以下修改來達到同樣的評價結果​​:

/^[a-zA-Z0-9_.-][email protected][a-zA-Z0-9_.-]+\.[a-zA-Z]{2,}$/;

一個進一步的建議是,你修剪在EmailField文本您通過表達運行之前,作爲開頭空格或其他空白字符或該字段的末尾將導致測試失敗。

+0

謝謝!新的正則表達式做到了。 CRM自動修剪文本字段的begininng空格,因此不需要額外的修剪。非常感謝。 – ichachan