Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Web > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 29.06.2018, 07:22   #1
AlexPebody
Новичок
 
Регистрация: 29.06.2018
Сообщений: 4
Репутация: 10
Вопрос Форма проверки Email исключение?

Доброго времени.

Если может кто, подскажите пожалуйста, никак не могу въехать, есть форма проверки Email адреса, с подсветкой и выведением сообщений:

Код:

$(document).ready(function() {
$('#email').blur(function() {
if($(this).val() != '') {
var pattern = /^([a-z0-9_\.-])+@[a-z0-9-]+\.([a-z]{2,4}\.)?[a-z]{2,4}$/i;
if(pattern.test($(this).val())){
$(this).css({'border' : '2px solid #81fc87'});
$('#valid').text('');
} else {
$(this).css({'border' : '2px solid #ff0000'});
$('#valid').text(''); alert('Вы ввели неверный \"email\", такого адреса нет!\r\nПожалуйста проверьте и введите верный адрес.');
}} else {
$(this).css({'border' : '2px solid #ff0000'});
$('#valid').text(''); alert('Вы не ввели адрес \"email\", не хотите отправлять?\r\nТогда проигнорируйте это сообщение и нажмите ОК.');

Нужно сделать исключение, чтобы при вводе в поле слов: save или русского: сохранить, не выполнялась проверка в паттерне, те чтобы скрипт пропускал это как нормально введенный Email. Как это сделать? В паттерне: var pattern = /^([a-z0-9_\.-])+@[a-z0-9-]+\.([a-z]{2,4}\.)?[a-z]{2,4}$/i; пытался подставить через || никак не вышло.

Заранее СПАСИБО!
AlexPebody вне форума   Ответить с цитированием
Старый 29.06.2018, 09:26   #2
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 23,899
Репутация: 5228
По умолчанию

Цитата:
Сообщение от AlexPebody Посмотреть сообщение
Код:

if(pattern.test($(this).val())){

// если на любом регистре (Save SAVE save Сохранить СоХраНиТь), то
Код:

if(pattern.test($(this).val()) || ($(this).val().toUpperCase() == 'SAVE') || ($(this).val().toUpperCase() == 'СОХРАНИТЬ')   ){

или просто
Код:

if(pattern.test($(this).val()) || ($(this).val() == 'save') || ($(this).val() == 'сохранить')   ){

Serge_Bliznykov на форуме   Ответить с цитированием
Старый 29.06.2018, 09:51   #3
AlexPebody
Новичок
 
Регистрация: 29.06.2018
Сообщений: 4
Репутация: 10
По умолчанию

Большое спасибо!

Сделал вот так: var pattern = /^([a-zа-я0-9_\.\+-])+@[a-zа-я0-9-]+\.([a-zа-я0-9-]{2,}\.)?[a-zа-я0-9-]{2,}$|^save$|^Save$|^SAVE$|^сохрани ть|^Сохранить|^СОХРАНИТЬ$/i;

А как на PHP сделать то же самое? Переносил, пробовал добавить русские а-яё, пролазил пачку форумов, толку 0,
не пропускает вот такой емайл например:

mail@васяпупкин.рф

Как победить? Хотя на JS из выражения выше, рисует зеленым (проверка email) и все ок, а в php сейчас стоит вот так и ничего не работает: if (!preg_match('~^([a-zа-яё0-9_\-\.])+@([a-zа-яё0-9_\-\.])+\.([a-zа-яё0-9])+$~i', $_POST['code']))

Последний раз редактировалось AlexPebody; 29.06.2018 в 10:27.
AlexPebody вне форума   Ответить с цитированием
Старый 29.06.2018, 10:47   #4
AlexPebody
Новичок
 
Регистрация: 29.06.2018
Сообщений: 4
Репутация: 10
По умолчанию

Вот так заработало на PHP: preg_match('~^([a-zA-Zа-яА-Я0-9_\-\.])+@([a-zA-Zа-яА-Я0-9_\-\.])+\.([a-zA-Zа-яА-Я0-9])+$~ui

Есть что то добавить?
AlexPebody вне форума   Ответить с цитированием
Старый 29.06.2018, 11:04   #5
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 23,899
Репутация: 5228
По умолчанию

букву Ё потеряли.
(впрочем, я не знаю, допустима ли она в кириллических именах).

добавлено
ага. проверил. допустима. (см. ёлка.рф)

Цитата:
Какие символы и какое количество символов допустимо для доменных имен .рф?
Доменное имя в домене .РФ должно состоять из собственного обозначения, уникального в пределах домена верхнего уровня, и символов ".РФ".

Собственное обозначение должно отвечать следующим техническим требованиям:

содержать не менее двух символов,
содержать такое количество символов, чтобы представление обозначения cpr144449003101 в кодировке Punycode содержало не более 63 символов;
начинаться и заканчиваться буквой или цифрой;
не содержать символов, отличных от букв, цифр и дефиса (допустимыми буквами являются буквы русского алфавита, включая букву «ё»; прописные и строчные буквы не различаются).

Последний раз редактировалось Serge_Bliznykov; 29.06.2018 в 11:08.
Serge_Bliznykov на форуме   Ответить с цитированием
Старый 29.06.2018, 11:05   #6
AlexPebody
Новичок
 
Регистрация: 29.06.2018
Сообщений: 4
Репутация: 10
По умолчанию

Понял спс! 8-)
AlexPebody вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Форма доходит до адресата, но нужно заменить email на телефон. shavedcat PHP 0 14.09.2014 19:41
Explorer.exe Исключение неизвестное программное исключение Windows XP, что делать? Igorilla Windows 6 02.04.2013 22:49
Исключение неизвестное программное исключение... Host-2013 Паскаль 19 09.02.2013 21:30
Исключение из проверки по Enabled...? kta87 Общие вопросы Delphi 16 06.02.2012 17:49
ПЕрвая форма, кликая по кнопке, другая форма Nadej C++ Builder 0 02.10.2011 17:58


11:57.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru