在 JavaScript 中验证电子邮件地址
Validate email address in JavaScript
这是我的问题:我正在尝试使用 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 中检查一下,这样如果用户插入了 space 或其他东西而不是分号,用户将收到正确格式的警报应该如何插入,以便他可以修复电子邮件。
请帮我修复我的 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;
}
}
}
我假设您发布的大部分代码都有效。我认为您只需要检查 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+)*$/;
似乎只适用于一封电子邮件。
我稍微修改了一下你的功能。这没有经过测试。
希望对你有帮助...
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;
}
您可以对 return 只有有效的电子邮件进行一些增强
这是我的问题:我正在尝试使用 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 中检查一下,这样如果用户插入了 space 或其他东西而不是分号,用户将收到正确格式的警报应该如何插入,以便他可以修复电子邮件。
请帮我修复我的 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;
}
}
}
我假设您发布的大部分代码都有效。我认为您只需要检查 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+)*$/;
似乎只适用于一封电子邮件。
我稍微修改了一下你的功能。这没有经过测试。 希望对你有帮助...
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;
}
您可以对 return 只有有效的电子邮件进行一些增强