2012-07-02 10 views
-1

Я пытаюсь проверить адреса электронной почты на своем веб-сайте, и я пытался создать демо-версию того, как будет проверяться проверка подлинности электронной почты с помощью JavaScript. То, что я пытаюсь сделать, это передать значение адреса электронной почты, введенного пользователем, функции validateEmail, а затем распечатать «valid» или «invalid» в div с результатом id. Поскольку я относительно новичок в JavaScript, я не уверен, как это сделать, и мне было интересно, может ли кто-нибудь показать мне пример того, как это сделать?Проверка адреса электронной почты с помощью regex

<head> 
<title>Practice</title> 

<script type="text/javascript"> 
function validateEmail(email) { 
    var re = /^(([^<>()[\]\\.,;:\[email protected]\"]+(\.[^<>()[\]\\.,;:\[email protected]\"]+)*)|(\".+\"))@((\[[0-9{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; 
    return re.test(email); 
} 
</script> 
</head> 
<body> 
    <form action="post" method="practice.php"> 
     e-mail: <input id="email" type="text" onblur="validateEmail(execute(document.getElementById('email').value))" /> 
     <div id="result"></div> 
    </form> 
</body> 
+0

ли это JS или регулярное выражение вы застряли? –

+0

Кстати, есть хорошие рамки, которые позволяют вам выполнять JS-проверку почти декларативно. Например, есть плагин проверки JQuery. – Kos

+0

FYI Если вы довольны HTML5, 'type =" email "', вероятно, более уместно. Подробнее см. Http://diveintohtml5.info/forms.html#type-email. – stusmith

ответ

1

Прежде всего, вам не нужно использовать execute метод и может получить value из this контекста:

validateEmail(this.value) 

Затем измените функцию для печати результата:

function validateEmail(email) { 
    var re = /^(([^<>()[\]\\.,;:\[email protected]\"]+(\.[^<>()[\]\\.,;:\[email protected]\"]+)*)|(\".+\"))@((\[[0-9{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; 
    if(re.test(email)) { 
     document.getElementById('result').innerHTML = 'valid'; 
    } else { 
     document.getElementById('result').innerHTML = 'invalid'; 
    } 
} 
+0

большое спасибо. Я был потерян относительно того, как использовать функцию test(), и как передать значение из поля ввода, это определенно разъясняет и работает !! еще раз спасибо! :) – AnchovyLegend

Смежные вопросы