Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Замена в яваскрипт
 
 автор: p.pavluxa   (19.08.2012 в 18:35)   письмо автору
 
 

Здравствуйте, уважаемые пользователи форума!
Я сейчас занимаюсь тем, что хочу к чату прикрутить смайлики. В строке сообщения у меня имеется слова вида
%[номер смайла]%

Мне необходимо заменить эти слова на
<img src="*****/[номер смайла].gif" alt="" />

Подскажите пожалуйста регулярное выражение для осуществления данного действия.
Заранее благодарен.
PS: если в строке несколько раз встречается одна и таже строка нужно заменить всех их, а не только первое вхождение.

  Ответить  
 
 автор: cheops   (20.08.2012 в 09:13)   письмо автору
 
   для: p.pavluxa   (19.08.2012 в 18:35)
 

Можно начать отталкиваться от следующего скрипта
<?php
  $str 
"%[123]%";
  
$pattern "|%\[(\d+)\]%|";
  echo 
htmlspecialchars(preg_replace($pattern"<img src=\"*****/\\1.gif\" alt=\"\" />"$str));
?>

  Ответить  
 
 автор: p.pavluxa   (20.08.2012 в 11:26)   письмо автору
 
   для: cheops   (20.08.2012 в 09:13)
 

Спасибо, это конечно мне всё понятно. У меня затруднение только с тем, что как мне во те циферки 123 поставить в 1.gif вместо единицы. Я этого не как не могу понять.

Плюс ко всему это нужно на JavaScript

  Ответить  
 
 автор: cheops   (20.08.2012 в 13:47)   письмо автору
 
   для: p.pavluxa   (20.08.2012 в 11:26)
 

Хм... так просто указывайте в тексте %[123]% или %[85]% и у вас вместо этих последовательностей будет автоматически подставляться ссылка на 123.gif или 85.gif... или нужно что-то другое?

  Ответить  
 
 автор: confirm   (20.08.2012 в 15:28)   письмо автору
 
   для: p.pavluxa   (20.08.2012 в 11:26)
 

Если в JS, то нужно знать кроме этого еще и в чем будет происходить замена - в строке или в html-элементе.

<p>text %[14]% text %[12]% tex %[23]% text</p>
<script>
//для элемента
var str = document.getElementsByTagName("p");
str[0].innerHTML = str[0].innerHTML.replace(/%\[(\d+)\]%/g, 
"<img src=path/nameimg$1.gif />");
//для строки
var str = "text %[14]% text %[12]% tex %[23]% text";
str = str.replace(/%\[(\d+)\]%/g, "<img src=path/nameimg$1.gif />")
</script>

  Ответить  
 
 автор: p.pavluxa   (20.08.2012 в 17:56)   письмо автору
 
   для: confirm   (20.08.2012 в 15:28)
 

Вот, это именно то что я хотел. Спасибо большое!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования