我不知道爲什麼它總是告訴我這是一個無效的電子郵件地址,即使它是正確的。任何想法? Demo on JSfiddle驗證告訴我所有的電子郵件地址都是無效的
我的形式
<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>
我custom.js
$('#FormViewForm').submit(function() {
validateEmail($('input').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 ([email protected]).');
}
} else {
alert('Not a valid e-mail address.');
}
}
我對這個問題的辦法很簡單,不驗證的電子郵件,只檢查它有一個'@'和發送確認郵件; **真實**驗證。 – elclanrs
如果我不得不採取瘋狂的猜測,它會是這樣一行:'if(email.indexOf('@ ce.com',email.length - '@ ce.com'.length)!== -1)' 。這沒有意義 –
@elclanrs可能有點快速val,像空格?在右半邊至少有一個點。 '^ [^] @ [^] \。[^] $' – brandonscript