Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Добавить в регулярку проверку на кириллические символы до @ (https://javascript.ru/forum/dom-window/50263-dobavit-v-regulyarku-proverku-na-kirillicheskie-simvoly-do-%40.html)

Pavel_G 19.09.2014 10:09

Добавить в регулярку проверку на кириллические символы до @
 
Привет, есть такое регулярное выражение
((([a-zA-Z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-zA-Z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?


не силен в регулярках,
нужно исключить адреса вида привет@mail.ru
в догонку может посоветуете статью где на пальцах объяснят как в них разобраться

Спасибо

ksa 19.09.2014 10:11

Цитата:

Сообщение от Pavel_G
может посоветуете статью где на пальцах объяснят как в них разобраться

Есть целая книга! :)
http://rutracker.org/forum/viewtopic.php?t=2092879

Pavel_G 19.09.2014 10:19

уже читаю)) но боюсь пока я ее прочту, меня заказчик разчленит))))))

BETEPAH 19.09.2014 10:41

Если я правильно понял условие
<input id="email" type="email" placeholder="E-mail" value="привет@mail.ru">
<button onclick="go()">Go</button>
<script>
function go() {
    var email = document.getElementById('email').value.split('@');
    alert(/[а-яА-ЯёЁ]/.test(email[0]));
}</script>

Pavel_G 19.09.2014 10:57

Спасибо, а есть возможность просто дописать представленную мной регулярку? я понимаю что это php но обратился сюда потому что работаю с h5validate.js , возможно кто то уже сталкивался

Rise 19.09.2014 11:32

Pavel_G, меняем все совпадения \u00A0-\uD7FF до @ на \u00A0-\u03FF\u0500-\uD7FF
Твоя регулярка все языки мира пропускает, а русский в бан не справедливо как то получается :(

Pavel_G 19.09.2014 11:41

:) спасибо, все работает:dance:

kostyanet 19.09.2014 16:13

Не бывает таких заказчиков, врут они все. Почему бы мне не написать privet@хрен.собачий? Проверяйте... :)

Проверка имейла делается чтобы чел точку не пропустил. Вот и все. Собачку только дебил пропустит, а такие вам зачем вообще?


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