регулярка и динам. шаблон
Здравствуйте!
Подскажите как мне получить аналогичную функцию на js из php function preg_replace_fix($s){ $arr = array( 'm'=>'-', 'p'=>'+', 's'=>'/' ); foreach ($arr as $key=>$val) { $s = preg_replace("/{".$key."}+/i",$val,(string)$s); } return $s; } получилось типа этого, но я не знаю будет ли работать, нет ли полегче способа. Сомнения в этом месте s = s.replace('/['+Globs.key+']+/g', '@'+key+'@'); Globs = { m:'-', p:'+', s:'/' }; function preg_replace_fix(s){ if(isArray(Globs) && s) { for(var key in Globs){ s = s.replace('/['+Globs.key+']+/g', '@'+key+'@'); } } return s; } спасибо! |
Если я правильно понял задание, то надо в строке все '-', '+', '/' заменить на '@m@', '@p@', '@s@' соответственно.
В 12-й строке нужно писать Globs[key], а не Globs.key, поскольку вы обращаетесь к свойству с ключом, заданным значением переменной key, а не с самим ключом 'key'. |
не работает вот эта строка s = s.replace('/['+Globs.key+']+/g', '@'+key+'@');
то есть должна быть литеральное выражение а не строка значит необходимо из строкового представления в латеральный, как сделать ? |
new RegExp('[\\\\' + Globs[key] + ']+','g') |
Часовой пояс GMT +3, время: 15:24. |