Я пытаюсь преобразовать (то, что я считаю) лучшей функцией проверки электронной почты (находится здесь: http://www.linuxjournal.com/article/9585?page=0,3) от php до javascript. Независимо от того, что «вы не должны проверять с помощью javascript, потому что javascript может быть отключен». Очевидно, я не могу оставить в функции checkdnsrr() функцию, но все остальное должно быть выполнимо с помощью javascript.Ошибка синтаксиса метода теста Javascript?
Пока функция работает не ожидается вплоть до этой линии: else if(/\.\./.test(domain)) {
Я знаю, что это довольно бесполезно без контекста, поэтому полная функция ниже. Что также странно, так это то, что он дает «проход» к строке с тем же шаблоном регулярного выражения: else if(/\.\./.test(local)) {
, который используется несколькими строками перед ним. Странный.
function validEmail(email) {
var isValid = true;
var atIndex = email.indexOf("@");
var ending = email.length - 1;
if(typeof(atIndex) == "boolean" && !atIndex) {
isValid = false;
}
else {
var domain = email.substr(atIndex+1);
var local = email.substr(0, atIndex);
var localLen = local.length;
var domainLen = domain.length;
if(localLen < 1 || localLen > 64) {
// local part length exceeded
isValid = false;
}
else if(domainLen < 1 || domainLen > 255) {
// domain part length exceeded
isValid = false;
}
else if(local[0] == '.' || local[localLen-1] == '.') {
// local part starts or ends with '.'
isValid = false;
}
else if(/\.\./.test(local)) {
// local part has two consecutive dots
isValid = false;
}
else if(/^[A-Za-z0-9\\-\\.]+$/.test(domain) == false)
// character not valid in domain part
isValid = false;
}
else if(/\.\./.test(domain)) {
// domain part has two consecutive dots
isValid = false;
}
else if(/^(\\\\.|[A-Za-z0-9!#%&`_=\/$'*+?^{}|~.-])+$/.test(local.replace("\\\\",""))) {
// character not valid in local part unless
// local part is quoted
if(/^"(\\\\"|[^"])+"$/.test(local.replace("\\\\",""))) {
isValid = false;
}
}
}
return isValid;
}
В чем проблема? Какая ошибка? – thefourtheye
'isValid =" false ";'? – SLaks
Все это говорит о «SyntaxError: синтаксической ошибке» в консоли. – Amygdala