Javascript 验证表明我的所有电子邮件地址都无效
我不知道为什么它总是告诉我这是一个无效的电子邮件地址,即使它是正确的。有什么想法吗 我的表格Javascript 验证表明我的所有电子邮件地址都无效,javascript,regex,Javascript,Regex,我不知道为什么它总是告诉我这是一个无效的电子邮件地址,即使它是正确的。有什么想法吗 我的表格 <form id="FormViewForm" method="post" action="/NewsletterMailer/subscribe/4" accept-charset="utf-8"> <input type="hidden" name="_method" value="POST" /> <
<form id="FormViewForm" method="post" action="/NewsletterMailer/subscribe/4" accept-charset="utf-8">
<input type="hidden" name="_method" value="POST" />
<input type="hidden" name="data[Form][id]" value="4" id="FormId" />
<input type="hidden" name="data[Form][type]" value="1" id="FormType" />
<input type="email" name="data[Form][e-mail]" value="" id="subscribe-email" placeholder="Enter your email..." required>
<input type="submit" value="+" class="large" id="subscribe-submit">
</form>
仅仅是一个jQuery选择器问题,您就缺少了一个
函数以电子邮件形式接收未定义的,正则表达式失败
您还可以使用纯JavaScript。(请注意,document.getElementById
不需要#
,这可能会导致混淆。)
仅仅是一个jQuery选择器问题,您就缺少了一个
函数以电子邮件形式接收未定义的,正则表达式失败
您还可以使用纯JavaScript。(请注意,document.getElementById
不需要#
,这可能会导致混淆。)
请使用正确的选择器 如果要将用户id作为选择器
validateEmail($('#subscribe-email').val());
或者您也可以使用输入标记作为选择器
validateEmail($('input[type=email]').val());
id选择器对所有浏览器都很强大,使用起来也很安全
请尝试此代码
$('#FormViewForm').submit(function() {
validateEmail($('#subscribe-email').val());
return false;
});
function validateEmail(email) {
var re = /^\s*[\w\-\+_]+(\.[\w\-\+_]+)*\@[\w\-\+_]+\.[\w\-\+_]+(\.[\w\-\+_]+)*\s*$/;
if (re.test(email)) {
if (email.indexOf('@c-e.com', email.length - '@c-e.com'.length) !== -1) {
alert('Submission was successful.');
} else {
alert('Email must be a CE e-mail address (your.name@c-e.com).');
}
} else {
alert('Not a valid e-mail address.');
}
}
请使用正确的选择器 如果要将用户id作为选择器
validateEmail($('#subscribe-email').val());
或者您也可以使用输入标记作为选择器
validateEmail($('input[type=email]').val());
id选择器对所有浏览器都很强大,使用起来也很安全
请尝试此代码
$('#FormViewForm').submit(function() {
validateEmail($('#subscribe-email').val());
return false;
});
function validateEmail(email) {
var re = /^\s*[\w\-\+_]+(\.[\w\-\+_]+)*\@[\w\-\+_]+\.[\w\-\+_]+(\.[\w\-\+_]+)*\s*$/;
if (re.test(email)) {
if (email.indexOf('@c-e.com', email.length - '@c-e.com'.length) !== -1) {
alert('Submission was successful.');
} else {
alert('Email must be a CE e-mail address (your.name@c-e.com).');
}
} else {
alert('Not a valid e-mail address.');
}
}
我的解决方案很简单,不验证电子邮件,只需检查它是否有
@
,然后发送确认电子邮件;真正的验证。如果我不得不胡乱猜测,那应该是这样一行:if(email.indexOf('@c-e.com',email.length-'@c-e.com.length)!=-1)
。这并不意味着什么sense@elclanrs也许有点快,比如空格?右半部分至少有一个点<代码>^[^]@[^]\.[^]$@remu:是的,过于简单化了,我通常使用类似于/[^@]+@[^@]/
@elclanrs的东西是的——虽然可能不是@也不是空格。:)我的解决方案很简单,不验证电子邮件,只需检查它是否有@
,然后发送确认电子邮件;真正的验证。如果我不得不胡乱猜测,那应该是这样一行:if(email.indexOf('@c-e.com',email.length-'@c-e.com.length)!=-1)
。这并不意味着什么sense@elclanrs也许有点快,比如空格?右半部分至少有一个点<代码>^[^]@[^]\.[^]$@remu:是的,过于简单化了,我通常使用类似于/[^@]+@[^@]/
@elclanrs的东西是的——虽然可能不是@也不是空格。:)