Код:
|
var $eMail = 'blah-blah9@blah-blah-blah9.blahblahblah';
alert(($eMail.match(/^[-_a-z0-9\.]+@(?:[-_a-z0-9]+(?=\.)\.)+[a-z]{2,6}$/i)) === null);/ Выводит true
var $reg = new RegExp('^[-_a-z0-9\.]+@(?:[-_a-z0-9]+(?=\.)\.)+[a-z]{2,6}$', 'i');
alert(($eMail.match($reg) === null);/ Выводит false |
Регулярки в обоих случаях одинаковые, в документации везде пишут, что случай №1 - это сокращенная форма, а №2 - полная. Но работают, судя по всему, по разному.
Почему так? Может кто подскажет?
Ушатал из-за этой непонятной разницы целые сутки. Переписывал регулярку по разному (думал, что неправильно пишу регулярку), экспериментировал (с объектом RegExp) и никак не мог понять почему не работает, пока не переписал в виде литерала и все заработало.