Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.09.2012, 19:08
Профессор
Отправить личное сообщение для Артем125 Посмотреть профиль Найти все сообщения от Артем125
 
Регистрация: 01.10.2009
Сообщений: 158

регулярка и динам. шаблон
Здравствуйте!

Подскажите как мне получить аналогичную функцию на 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;
}


спасибо!

Последний раз редактировалось Артем125, 26.09.2012 в 19:14.
Ответить с цитированием
  #2 (permalink)  
Старый 26.09.2012, 19:33
Профессор
Отправить личное сообщение для oneguy Посмотреть профиль Найти все сообщения от oneguy
 
Регистрация: 31.05.2012
Сообщений: 396

Если я правильно понял задание, то надо в строке все '-', '+', '/' заменить на '@m@', '@p@', '@s@' соответственно.
В 12-й строке нужно писать Globs[key], а не Globs.key, поскольку вы обращаетесь к свойству с ключом, заданным значением переменной key, а не с самим ключом 'key'.
Ответить с цитированием
  #3 (permalink)  
Старый 26.09.2012, 21:27
Профессор
Отправить личное сообщение для Артем125 Посмотреть профиль Найти все сообщения от Артем125
 
Регистрация: 01.10.2009
Сообщений: 158

не работает вот эта строка s = s.replace('/['+Globs.key+']+/g', '@'+key+'@');
то есть должна быть литеральное выражение а не строка



значит необходимо из строкового представления в латеральный, как сделать ?

Последний раз редактировалось Артем125, 26.09.2012 в 21:34.
Ответить с цитированием
  #4 (permalink)  
Старый 26.09.2012, 21:48
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,586

new RegExp('[\\\\' + Globs[key] + ']+','g')
__________________
29375, 35
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Шаблон страницы Cvin Работа 3 22.12.2011 12:59
регулярка для парсинга SQL запроса Yurik Общие вопросы Javascript 2 09.12.2011 15:08
Регулярка на дробные числа shkarbatov Javascript под браузер 14 29.07.2011 01:05
У кого то из вас нужный мне шаблон! Каупервудик (X)HTML/CSS 2 27.11.2010 04:17
в input-е шаблон vanderv Events/DOM/Window 4 20.08.2010 01:00