Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
403 / 19 / 5
Регистрация: 17.01.2017
Сообщений: 563
1

Поиск bbcode IMG по имени рисунка и изменения параметров

01.03.2019, 01:19. Показов 508. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
У меня есть четыре поля (input) высота, ширина, выравнивание и поиск (куда вносится имя картинки). Мне нужно заполнить эти параметры и при нажатии на кнопку "заменить", чтобы происходило автоматический поиск по имени картинки и замена параметров. Как этом можно сделать.
Сам bbcode выглядит вот так:
[img param="left:500:200"]/13432641.jpg[/img], атрибут param="выравнивание:ширина:высота".
Поиск всех img мне удалось сделать функция tagsImg. Вот весь код:
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ru" xml:lang="ru">
<head>
<title>Замена параметров</title>
<meta http-equiv="Content-Type" content="text/html; cjarset=utf-8"/>
<script src="js/jquery-1.11.0.min.js" type="text/javascript"></script>
<script>
var w,h,a,s;
function tagsImg(str) {
  var tags=str.match(/\[(([img]+)(?:(?:\=|\s)([^\]]+))?)\](.*)\[\/\2\]/gi);
  $("span").text(tags);
 
}
 
function change()
{
    a = document.getElementById("a").value;
    w = document.getElementById("w").value;
    h = document.getElementById("h").value;
    s = document.getElementById("s").value;
}
</script>
</head>
<body>
<textarea onkeyup="str=this.value;tagsImg(str);" id="mess" name="mess" rows="15" cols="45">
[img param="left:500:200"]/70117451.jpg[/img]
[img param="left:500:200"]/23124214.jpg[/img]
[img param="left:500:200"]/12312312.jpg[/img]
[img param="left:500:200"]/13432641.jpg[/img]
[img param="left:500:200"]/45223431.jpg[/img]
</textarea><br>
<span></span>
<p>Выравнивание:<br>
<input type="text" value="right" id="a"></p>
<p>Ширина:<br>
<input onkeyup="this.value = this.value.replace (/\D/gi, '').replace (/^0+/, '')" id="w"></p>
<p>Высота:<br>
<input onkeyup="this.value = this.value.replace (/\D/gi, '').replace (/^0+/, '')" id="h"></p>
<br><br>
<p>Поиск:
<input type="text" value="23124214.jpg" id="s"></p>
<button onclick="change()">Замена</button>
</body>
</html>
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.03.2019, 01:19
Ответы с готовыми решениями:

Как защитить от взлома через [img] [/img] BBcode
Добрый день! На сайте реализованы некоторые возможности BBcode в комментировании... Я так понимаю...

Удаление bbcode img
Пытаюсь удалить тэг img из текста записываю регулярное выражение. $text =...

Регулярка для bbcode img
Здравствуйте. bbcode: alt регулярка: &quot;/\(.+?)\/is&quot; результат:&lt;img src=&quot;link&quot; alt=&quot;alt&quot;&gt; ...

html img %20 в имени файла
Здравствуйте! На сервере лежит файл asd%20asd.jpg Если его вставить в html в тэг img: &lt;img...

2
98 / 64 / 36
Регистрация: 04.12.2018
Сообщений: 158
01.03.2019, 18:39 2
Для начала нужна функция, чтобы из BBCode-строки получать те самые четыре значения, допустим в виде объекта. Регулярку надо бы доработать, чтобы в скобки захватывалось только нужное:

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function parseBBCode(str) {
  const re = /\[img\s+param=\"(\w+):(\d+):(\d+)\"\]([^\[]+)\[\/img\]/
  const result = re.exec(str)
  return {
    align: result[1],
    width: +result[2],
    height: +result[3],
    path: result[4],
  }
}
 
const test = '[img param="left:500:200"]/70117451.jpg[/img]'
console.log(parseBBCode(test))
// { align: 'left', width: 500, height: 200, path: '/70117451.jpg' }
0
403 / 19 / 5
Регистрация: 17.01.2017
Сообщений: 563
03.03.2019, 03:54  [ТС] 3
Как мне сделать замену атрибута param.
Использовала replace, я вообще плохо понимаю как он работает.
PHP/HTML
1
2
3
4
re= /\[img\s+param=\"(\w+):(\d+):(\d+)\"\]((.(?!\[\/m\]))*.)\[\/img\]/ig;
 
test="[img param=\"left:500:200\"]/70117451.jpg[/img]";
alert(test.replace(re, 'right:300:100'));
0
03.03.2019, 03:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.03.2019, 03:54
Помогаю со студенческими работами здесь

Регулярка - Как вырезать img по имени файла?
Помогите плиз с регуляркой, убил весь день на поиск решения, перепробовал &lt;censored&gt; вариантов, но...

Изменения атрибута src при нажатие на img
Пытаюсь сделать чтобы при нажатие на картинку изменялась её путь (src). Вот код &lt;img id=&quot;like&quot;...

Использование текущего значения переменной в имени рисунка
Здравствуйте. Решил освоить VB. Практикуюсь потихоньку. Столкнулся со следующим вопросом: На форме...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru