|
|
|
| Здрасьте всем
Столкнулся с проблемой: взял регулярное выражение для проверки правильности ввода эл. почты написанное ув. студией Софттайм. На пхп отрабатывает корректно, а вот на жабаскрипте не очень.
var oFilter = new RegExp('^[-0-9a-z_\.]+@[-0-9a-z_^\.]+\.[a-z]{2,6}$','i');
if( oFilter.test(sEmail) ) {
}
|
применяю его как показано в коде выше, но почему-то одинаково обрабатываются эл. адреса таких видов:
Что я не правильно делаю, что корректными показываются адреса без точки в доменном имени? | |
|
|
|
|
|
|
|
для: Lelik
(11.03.2011 в 16:03)
| | Белебирдистика со слешами, нужно экранировать экранирующий слеш, в общем если перед точкой добавите 2 слеша - она будет экранирована, если один - его сжует JavaScript и до регулярного выражения ничего не дойдет.
var oFilter = new RegExp('^[-0-9a-z_.]+@[-0-9a-z]+\\.[a-z]{2,6}$','i');
|
| |
|
|
|
|
|
|
|
для: cheops
(11.03.2011 в 16:16)
| | А слеши, которые в квадратных скобках, они нужны или там без них всё как надо обработает скрипт? :) | |
|
|
|
|
|
|
|
для: Lelik
(11.03.2011 в 16:21)
| | Они там избыточны, т.е. с ними тоже будет работать, но и без них ничего страшного не случится. | |
|
|
|
|
|
|
|
для: cheops
(11.03.2011 в 16:23)
| | Т. е. в моём случае правильно будет так:
new RegExp('^[-0-9a-z_.]+@[-0-9a-z_^.]+\\.[a-z]{2,6}$','i');
|
| |
|
|
|
|
|
|
|
для: cheops
(11.03.2011 в 16:23)
| | Спасибо вам огромное :) | |
|
|
|
|
|
|
|
для: cheops
(11.03.2011 в 16:16)
| | что-то вы меня озадачили с двойным слешем. У меня так:
if(document.frm.mail.value.search(/([0-9a-zA-Z\.-_]+)@([0-9a-zA-Z\.-_]+)\.[a-zA-Z]{2,}\s*$/) < 0)
работает с одинарным | |
|
|
|
|
|
|
|
для: kosta_in_net
(11.03.2011 в 17:00)
| | Здесь строки нет, т.е. регулярное выражение не заключено в кавычки. | |
|
|
|