Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как проверить корректность поля e-mail? (https://javascript.ru/forum/misc/28323-kak-proverit-korrektnost-polya-e-mail.html)

daniilino 15.05.2012 12:05

Как проверить корректность поля e-mail?
 
Всем доброго времени суток. Есть у меня поле <input type="text">, которое предназначено для введения e-mail адресса. Я знаю, как проверить его с помощью РНР, но не хочу, чтобы пользователь ждал и хочу сделать проверку JAVASCRIPTом, в котором вобще ничего не понимаю :haha: . Осуществил проверку на наличие @ и точки. Но как проконтролировать наличие только английских символов??? Как ни введу [a-z] - не работает:(
Вот код:
if (document.forma.email.value.indexOf('.', 0) == -1 || document.forma.email.value.indexOf('@', 0) == -1) {

document.getElementById('emailtips').innerHTML = '<div class="ftip">Некорректный E-Mail!</div>';}

Ну и HTML:
<input type="text" name="email" maxlength="100"><span id="emailtips"></span>

bot87 15.05.2012 12:20

в интернете полно регулярок на js для проверки корректности адреса .
reg=/[^a-z,@,\.]/gi позволяет вводить только анг.буквЫ,симол . и @.Но для валидации не годится

GuardCat 15.05.2012 12:28

var r = /^\w+@\w+\.\w{2,4}$/i;
if (!r.test(document.forma.email.value) {
	//Код, если неверный e-mail
}

Описание регулярного выражения: начало строки, английские буквы от одной до бесконечности, собака, опять буквы от одной до бесконечности, точка, буквы от двух до четырёх (если почта где-нибудь на .info), конец строки. Регистр букв не учитывается.

Раед 15.05.2012 12:38

http://learn.javascript.ru/regexp-introduction
Там есть хороший рег для поиска мейлов

GuardCat 15.05.2012 12:53

Раед, да, многого я не учёл :(

Kolyaj 15.05.2012 12:55

daniilino,
проверяйте просто наличие @, всё равно правильность адреса регуляркой не проверить, он может не существовать.

GuardCat,
вот такие вот решения и портят карму разработчику, потому что пользователь потом не может ввести свой email. До собаки могут быть ещё, как минимум, точка, минус и плюс.

GuardCat 15.05.2012 13:00

Kolyaj, да-да, я это понял уже.
var r = /^[\w\.\d-_]+@[\w\.\d-_]+\.\w{2,4}$/i;

Вот так учтены разрешённые символы.

zebra 15.05.2012 13:12

input type="email" :)

Раед 15.05.2012 13:17

Цитата:

Сообщение от zebra
input type="email"

- Safari
- IE
- FF<4
- Opera<10.60
+ остальное
:)

daniilino 15.05.2012 16:50

ВСем спасибо:yes: проблему решил:thanks:


Часовой пояс GMT +3, время: 13:53.