Как сделать чтобы при регистрации проверялась правильность вводимого t-mail адреса, т.е. ячтобы проверял наличие "@" и
".ru"?
Как сделать чтобы при регистрации проверялась правильность вводимого t-mail адреса, т.е. ячтобы проверял наличие "@" и
".ru"?
Код:<script language="javascript"> ****function validate() { *var realname = simpleForm.realname.value, *****email = simpleForm.email.value, *****errorMsg = "", *****errorDetected = false; ***** *if(!isEmailAddressValid(email)) { *****if(errorMsg.length > 0) *****errorMsg +="\n"; *****errorMsg += "E-mail адрес введен не корректно"; *****errorDetected = true; *} *if(errorDetected) *****alert(errorMsg); ***** *return !errorDetected; ****} ****function isEmailAddressValid(s) { *var atSign = new RegExp(".*(@).*"); ****return atSign.test(s); ****} </script> <body> <form name="simpleForm" onSubmit="return validate()"> <input name="email" type="text" size="50"> <input name="send" type="submit" value="Отправить данные"> </form> </body>
Хех... ))
Код:function sendform() { if (document.mainform.mail.value != "") { var rightmail = new RegExp("[0-9a-z_-]+@[0-9a-z_^.-]+\\.[a-z]", 'i'); var email = eval('document.mainform.mail'); if (!rightmail.test(email.value)) { alert('Указан некорректный адрес E-Mail.\nПожалуйста, исправьте ошибку.'); document.mainform.mail.focus(); return false; }} return true; }
"[0-9a-z_-]+@[0-9a-z_^.-]+\\.[a-z]"
а там в конце плюсик не надо добавить, т.е. не так случаем:
"[0-9a-z_-]+@[0-9a-z_^.-]+\\.[a-z]+"
И почему два слеша?
[/quote]
А зачем? Что там еще Вы хотите прибавить?
[/quote]
Потому что первый слэш экранирует второй слэш...
Второй слеш из-за javы получается?
т.е. в обычном регэкспе "\."="." а "\\."="\(любой знак к которому нужен одно из {} . + ?)"
А в конце плюсик, чтобы он целиком выражение брал. Еще можно добавить "$" и "^". (т.е. "^[0-9a-z_-]+@[0-9a-z_^.-]+\\.[a-z]+$") Иначе имхо может пройти такой адресок:
"сорок тысяч обезьян a@a.a в попу сунули банан".
И кстати, разве в домене второго уровня нельзя использовать "-"?
Если уж по полной программе:
(/^([a-z0-9_\-]+\.)*[a-z0-9_\-]+@([a-z0-9][a-z0-9\-]*[a-z0-9]\.)+[a-z]{2,4}$/i)