2013-12-14 3 views
-1

Мы можем выполнить очень простой проверки адреса электронной почты с JavaScript, реализуя следующие три правила:Проверка адреса электронной почты с использованием JScript без регулярного выражения

1. Адрес электронной почты должен иметь символ @

2. адрес электронной почты должен иметь. (точка) характер

3.There должно быть зарегистрировано не менее 2 символов между @ и точка (.)

ответ

-1
var checkEmail = function(value) { 

    var valid = true; 

    if (value.indexOf('@') == -1) { 
     valid = false; 
    } else { 

     var parts = value.split('@'); 
     var domain = parts[1]; 

     if (domain.indexOf('.') == -1) { 

      valid = false; 

     } else { 

      var domainParts = domain.split('.'); 
      var ext = domainParts[1]; 

      if (ext.length > 4 || ext.length < 2) { 

       valid = false; 
      } 
     } 

    } 


    return valid; 

}; 

var form = document.getElementById('test'); 

var validate = function(event) { 
    event.preventDefault(); 
    var val = document.getElementById('email').value; 
    var valid = checkEmail(val); 

    if (!valid) { 

     alert('Not a valid e-mail address'); 
    } else { 

     alert('Valid e-mail address'); 

    } 
}; 

form.addEventListener('submit', validate, false); 

Ther e - много методов проверки адреса электронной почты, каждый метод проверки имеет свои плюсы и минусы. Описанный выше метод не требует понимания регулярных выражений

+0

Это также проверить '@xx. 'который, очевидно, не является адресом электронной почты. –

+0

pswg, в будущем может появиться доменное имя с «xx», но все же я считаю его действительным. –

0

Вы можете попробовать это,

var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; 

if (!filter.test(email.value)) { 
     alert('Please provide a valid email address'); 
+2

Вопрос довольно четко формулирует «** без ** регулярного выражения». Хотя я думаю, что регулярное выражение является более простым и понятным решением, это не то, что ищет OP. –

1

Это удовлетворяет все правила, указанные, а также не позволяя @ начать адрес и не позволяет. для завершения адреса. Он не учитывает несколько. в адресе.

function testEmailAddress(emailToTest) { 
    // check for @ 
    var atSymbol = emailToTest.indexOf("@"); 
    if(atSymbol < 1) return false; 

    var dot = emailToTest.indexOf("."); 
    if(dot <= atSymbol + 2) return false; 

    // check that the dot is not at the end 
    if (dot === emailToTest.length - 1) return false; 

    return true; 
} 

Fiddle

0

`` Это работает ... Мое собственное создание :) Email Validation

<input type=”text” name=”email” id=”email” /> 
<input type=”button” name=”btnok” onclick=”validate()” /> 

Функция Java Script

<script type=”text/javascript”> 
function validate() 
{ 
var str; 
var t=1; 
str =document.getElementById(‘email’).value; 
if(document.getElementById(‘email’).value==”") 
{ 
alert(“Empty”); 

} 
var res = str.split(‘@’); 
if(str.split(‘@’).length!=2) 
{ 
alert(“zero @ OR morethan one @ “); 
t=0; 
} 
var part1=res[0]; 
var part2=res[1]; 

// part1 
if(part1.length==0) 
{ 
alert(“no content bfr @”); 
t=0; 
} 
if(part1.split(” “).length>2) 
{ 
alert(“Invalid:Space before @”) 
t=0; 
} 

//chk afr @ content: part2 
var dotsplt=part2.split(‘.’); //alert(“After @ :”+part2); 
if(part2.split(“.”).length<2) 
{ 
alert(“dot missing”); 
t=0; 
} 
if(dotsplt[0].length==0) 
{ 
alert(“no content b/w @ and dot”); 
t=0; 
} 
if(dotsplt[1].length<2 ||dotsplt[1].length>4) 
{alert(“err aftr dot”); 
t=0; 
} 

if(t==1) 
alert(“woooooooooooooooooooowwwww…it is a valid email”); 

} 

</script> 
Смежные вопросы