2010-11-18 90 views
0

iam使用JavaScript函數中的正則表達式來驗證電子郵件。 iam使用asp.net自定義驗證器調用javascriptfunction。電子郵件驗證正在工作當我點擊文本框時,光標位於文本框的中間。如果文本框爲空,它不會移動到文本的末尾或文本框的開頭。你對這個錯誤有什麼想法嗎?ASP.NET文本框和正則表達式

<asp:TextBox ID="txt_piEmail" CssClass="txtbox" runat="server" Text=""></asp:TextBox> 

<asp:CustomValidator ID="custom_valPatientInfoEmail" Display="None" ErrorMessage="Email" runat="server" ControlToValidate="txt_piEmail" SetFocusOnError="true" ClientValidationFunction="validEmail"> 

.txtbox { 
font-size: 11px; 
height:15px; 
font-weight: normal; 
color: #333333; 
line-height: 18px; 
border: 1px solid #b8c6d1; 

}

function validEmail(src, args) { 



    args.IsValid = true; 

    var email = document.getElementById("<%=txt_piEmail.ClientID%>"); 

    var emailID = email.value; 


    var message = ""; 
    var list; 
    if (emailID.indexOf(';') > 0) 
     list = emailID.split(';'); 
    else 
     list = emailID.split(','); 
    for (y = 0; y < list.length; y++) { 
     if (trimString(list[y]) != '') 
      if (echeck(trimString(list[y])) == false) { 

       args.IsValid = false; 



      } 
    } 


    } 



     function trimString(str) { 
    //str = this != window? this : str; 
    return str.replace(/^\s+/g, '').replace(/\s+$/g, ''); 
} 

我可以使用正則表達式驗證器。我沒有正則表達式驗證器的正則表達式。我想驗證電子郵件的格式如下: 1. [email protected] - 電子郵件ID之間的空格。 [email protected] - 沒有尾隨空間

+1

請顯示您的javascript函數的代碼。另外,爲什麼你不使用RegularExpressionValidator呢? – 2010-11-18 08:22:50

+0

你可以發佈txtbox CSS類的代碼嗎?這聽起來像你正在與這個班級做這個。 – 2010-11-18 08:34:46

回答

0

我設置數據庫NCHAR電子郵件字段。現在我將其更改爲varchar。它工作正常。

0

您可能希望保存自己頭疼,並使用「正則表達式驗證」

,那麼你會碰到這樣的:

<asp:TextBox ID="txt_piEmail" CssClass="txtbox" runat="server" Text=""></asp:TextBox> 
<asp:asp:RegularExpressionValidator runat="server" id="regexVal" ControlToValidate="txt_piEmail" ValidationExpression="^[A-Z0-9._%+-][email protected][A-Z0-9.-]+\.[A-Z]{2,4}$" Display="None" ErrorMessage="Email" /> 

這將驗證IN JAVASCRIPT和服務器(假設你在事件上做了某種page.validate)。
您可以切換出實際的正則表達式,我只是將其拉下第一個谷歌結果。
你可以閱讀更多關於它在這裏:
http://msdn.microsoft.com/en-us/library/eahwtc9e.aspx