Текстовое поле ASP.NET и регулярное выражение

iam использует регулярное выражение в функции javascript для проверки электронной почты. iam вызывает функцию javascript с помощью пользовательского валидатора 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] — завершающий пробел между идентификатором электронной почты. [email protected] - без пробела в конце


person giri-net    schedule 18.11.2010    source источник
comment
Пожалуйста, покажите код вашей функции javascript. Кроме того, почему вы не используете для этого RegularExpressionValidator?   -  person Jonas Høgh    schedule 18.11.2010
comment
Можете ли вы опубликовать код класса CSS txtbox. Похоже, вы делаете это с этим классом.   -  person Pavel Nikolov    schedule 18.11.2010


Ответы (2)


Вы можете избавить себя от головной боли и использовать «валидатор регулярных выражений».

тогда у вас будет что-то вроде:

<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._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$" Display="None" ErrorMessage="Email" />

Это будет проверяться В JAVASCRIPT и на сервере (при условии, что вы выполняете своего рода page.validate для своего события).
Вы можете отключить фактическое регулярное выражение, я только что вытащил его из первого результата Google.
Подробнее об этом можно прочитать здесь:
http://msdn.microsoft.com/en-us/library/eahwtc9e.aspx

person Letseatlunch    schedule 22.11.2010

я установил поле электронной почты в базе данных как nchar. теперь я меняю его на varchar. это работает нормально.

person giri-net    schedule 22.11.2010