регулярка javascript

ZiX

Коддинг, Парсинг
Регистрация
9 Июл 2011
Сообщения
1.378
Реакции
707
Смысл следующий... через :contains ищутся имена валют. варианты руб, eur., $.
Код:
$('input#wholesale_price, input#priceTE, input#priceTI, input#unit_price, input#sp_price').
                        parents('table').first().find('tr').not('.nn').find(':contains("'+ pc_data[def_currency].sign +'")').each(function(){
                    var html = $(this).html();
                    var regex = new RegExp(pc_data[def_currency].sign, 'ig');
                    var html_replace = html.replace(pc_data[def_currency].sign, sign_val)
                    $(this).html(html_replace);
                });

Вот код. Всё работает нормально пока на месте pc_data[def_currency].sign
не попадается $.
в regexp определяется как конец строки. я бы экранировал но сложность в том что pc_data[def_currency].sign принимает значения руб, eur., $. а может и ещё 10 других.
и получается что регулярка /eur./gi работает, а /$/gi нет... подскажите как выйти из ситуации.
 
экранируй нужные символы перед тем как подставить в шаблон...
var reg = pc_data[def_currency].sign.replace('$','\$');
 
экранируй нужные символы перед тем как подставить в шаблон...
var reg = pc_data[def_currency].sign.replace('$','\$');
это понятно, а универсального нет решения? как экранировать то я в крсе)
 
Всмисле, из вопроса понятно только что нужно заэкранировать спецсимвол, что еще?
 
Всмисле, из вопроса понятно только что нужно заэкранировать спецсимвол, что еще?
это решение только для доллара. в 1 сообщении я писал. я бы экранировал но сложность в том что pc_data[def_currency].sign принимает значения руб, eur., $. а может и ещё 10 других. нельзяли чего-то универсального? вдруг ещё чтото)
 
Экранировать нужно не так уж много спецсимволов.
Код:
str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
 
Назад
Сверху