ASP.NET文本框和正则表达式
问题描述:
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] - 没有尾随空间
答
我设置数据库NCHAR电子邮件字段。现在我将其更改为varchar。它工作正常。
答
您可能希望保存自己头疼,并使用“正则表达式验证”
,那么你会碰到这样的:
<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
请显示您的javascript函数的代码。另外,为什么你不使用RegularExpressionValidator呢? – 2010-11-18 08:22:50
你可以发布txtbox CSS类的代码吗?这听起来像你正在与这个班级做这个。 – 2010-11-18 08:34:46