以下是我的问题:我尝试使用asp:RegularExpressionValidator验证文本框中的电子邮件,请参阅以下内容:
<telerik:RadTextBox ID="AlertMissedEmail" Width="300" runat="server" Label="" MaxLength="500" TextMode="MultiLine"></telerik:RadTextBox>
<asp:RegularExpressionValidator runat="server" ID="revEmail" ControlToValidate="AlertMissedEmail"
Display="None" ValidationExpression="^([\w+-.%]+@[\w-.]+\.[A-Za-z]{2,4},?)+$"
ValidationGroup="validationTourProperties" EnableClientScript="false"
ErrorMessage="- Please enter a valid email address:(ex.) <b>john@gmail.com</b>" />
如果只有一封电子邮件,它可以正常工作,但我想让用户添加多个只能用分号分隔的电子邮件
我想首先在JS中检查它,所以如果用户插入空格或其他东西而不是分号,用户将获得一个具有正确格式的警报,如何插入它以便他可以修复电子邮件。
请帮我修复我的JS代码:
function formCheck(sender,args)
{
//Getting the Email field value & text.
var l_Email = $find("<%=AlertMissedEmail.ClientID %>").get_value();
var l_EmailText = $find("<%=AlertMissedEmail.ClientID %>").get_textBoxValue();
//Setting up the Reg expression for email.
var reg = /^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
// 3). Check for reg expression of the email field.
if (l_EmailText == "") { // text is empty email is not must.
retValEmail = true;
}
if (l_EmailText != "") { // email is not empty check for reg
if (reg.test(l_Email)) {
retValEmail = true;
}
else {
alert("Please enter a valid email address");
retValEmail = false;
}
}
}
答案 0 :(得分:0)
我假设您发布的大多数代码都有效。我想你只需要查看类似split()
函数的内容。一旦得到l_EmailText
,您就可以致电:
var emails = l_EmailText.split(";");
分解每封电子邮件,然后迭代:
for (var i = 0; i < emails.length; i++) {
// individual email check code goes here
}
单独检查每封电子邮件。您的正则表达式/^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
似乎仅适用于一封电子邮件。
答案 1 :(得分:0)
我修改了你的功能。这没有经过测试。 希望它有所帮助...
function formCheck(sender,args)
{
//Getting the Email field value & text.
var l_Email = $find("<%=AlertMissedEmail.ClientID %>").get_value();
var l_EmailText = $find("<%=AlertMissedEmail.ClientID %>").get_textBoxValue();
//Setting up the Reg expression for email.
var reg = /^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
var hasInvalidMail = false;
if (l_EmailText.length < 7) { // valid email to have 7 chars at least
return false;
}
//split emails if there is ;
var emails = [];
if(l_EmailText.indexOf(';') >= 0)
{
emails = l_EmailText.split(';');
}
else
{
emails[0] = l_EmailText;
}
//loop all emails
for(var i=0; i<emails.length;i++)
{
if (!reg.test(l_Email)) {
//stop checking if we find error
hasInvalidMail = true;
break;
}
}
return hasInvalidMail;
}
您可以进行一些增强以仅返回有效的电子邮件