Показать сообщение отдельно
  #1 (permalink)  
Старый 21.05.2010, 14:44
Интересующийся
Отправить личное сообщение для Arconas Посмотреть профиль Найти все сообщения от Arconas
 
Регистрация: 21.05.2010
Сообщений: 11

RegExp и search. Проблема с переменной в выражении
Здравствуйте.
Столкнулся с не совсем понятной мне вещью. Имеется регулярное выражение вида: /1 + id_user + [0-9]/. Отвечает это регулярное выражение за тривиальную задачу - в зависимости от пришедшего числа пользователь наблюдает в чат-приложении сообщение "Входящее приватное сообщение". Выкладываю часть кода, относящегося именно к проблеме. Значения channel и id_user приходят из XML. JS парсит ответ сервера и выводит пользователю на экран.

/*...*/
var channel = channelArray.item(i).firstChild.data.toString();
var id_user = nameArray.item(i).getAttribute("id_user");
var UserToArrow = new RegExp('1' + id_user + '[0-9]');
  if(channel.search(UserToArrow) > -1 ){
           htmlMessage += "[входящий приват] ";
           displayMessage (htmlMessage);
        }
/*...*/


Если поставить var id_user = '1', к примеру, то шаблон работает замечательно. Если же значение переменной приходит через nameArray.item(i).getAttribute("id_user"); то не работает. Ставил alert и на id_user и на UserToArrow. Шаблон формируется правильно, id_user - это номер текущего клиента. Firebug не ругается. Никак не могу понять в чем проблема и решил спросить у знающих людей.
Ответить с цитированием