Показать сообщение отдельно
  #1 (permalink)  
Старый 04.10.2010, 22:19
Аспирант
Отправить личное сообщение для San4ezy Посмотреть профиль Найти все сообщения от San4ezy
 
Регистрация: 15.11.2009
Сообщений: 38

Регулярные выражения работают через раз
Добрый вечер!
Возникла проблема:
Есть вот такой массив регулярок (проверяет ссылки на принадлежность к файлообменникам):
var pattern=[
/https{0,1}:\/\/(www.){0,1}rapidshare.com\/.*/gi ,
/https{0,1}:\/\/(www.){0,1}letitbit.net\/.*/gi
]

Выполняю один и тот же код в разной последовательности:

ab
var a="http://www.rapidshare.com/files/421054723/Avatar.2010.DVD5.part01.rar";
var b="http://www.rapidshare.com/files/421054763/Avatar.2010.DVD5.part02.rar";
if(pattern[0].test(a)){alert(a);}
if(pattern[0].test(b)){alert(b);}

Выводится только переменная a;

ba
var a="http://www.rapidshare.com/files/421054723/Avatar.2010.DVD5.part01.rar";
var b="http://www.rapidshare.com/files/421054763/Avatar.2010.DVD5.part02.rar";
if(pattern[0].test(b)){alert(b);}
if(pattern[0].test(a)){alert(a);}

Выводится только переменная b;

Хотя по логике должны выводиться обе переменные, только в разной последовательности.
Но выходит что регулярка работает при первой проверке, но не работает при второй. Более того, они работают при нечетных проверках, и не работают при четных (проверял практически)!
В чем проблема, чего я не понимаю? Помогите пожалуйста!!!
Спасибо!!!
Ответить с цитированием