Задать вопрос
@Mihail9575

Как заменить Регулярное выражение — регулярным выражением?

Есть функция:
function chistka() {
  var s = document.getElementById('k2').value;
  var ri = /(>)\s(<)/gmi;
  var re = /$1\n$2/;

  var result = s.replace(ri, re);
  document.getElementById('k2').value = result;
}
Требование: Переводить строки если в HTML-коде есть пробелы между тегами/символами ">" и "<"

Например: Найти "> <" и заменить на ">*перевод строки*<"

Проблема в том, что при замене получается "/>\n< /" т.е. распознаётся как текст, а не как регулярное выражение.

Результат:
<style type="text/css"/>\n</!-- span.cls_004{font-family:Arial,serif;font-size:18.1px;color:rgb(255,255,255);font-weight:bold;font-style:normal;text-decoration: none} --/>\n<//style/>\n</div style="position:absolute;left:50%;margin-left:-306px;top:0px;width:612px;height:792px;border-style:outset;overflow:hidden"/>\n</div style="position:absolute;left:0px;top:0px"/>\n</img src="Utah motorcycleFactSheet2012_files/background1.jpg" width=612 height=792></div/>\n</div style="position:absolute;left:29.88px;top:32.86px" class="cls_004"><span class="cls_004">2012 Utah Crash Facts</span></div/>\n<//div>

Сам код: ТыК
  • Вопрос задан
  • 2586 просмотров
Подписаться 4 Оценить Комментировать
Решения вопроса 1
@Mihail9575 Автор вопроса
Переменная должна быть строкой:
function chistka() {
  var s = document.getElementById('k1');
  var result = s.value.replace(/(>)\s(<)/gmi, '$1\n$2');
  s.value = result;
}

Спасибо ВСЕМ!
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Lynn
@Lynn
nginx, js, css
re должно быть строкой. И зачем в регулярке (\n) я не понял.
В общем, я бы сделал так:
function chistka() {
  var s = document.getElementById('k2').value;
  var ri = />\s+</gmi;
  var re = ">\n<";

  var result = s.replace(ri, re);
  document.getElementById('k2').value = result;
}
Ответ написан
Комментировать
iiil
@iiil
Инженер и вэб-дизайнер, рисую.
var ri = /(>)\s(<)/gmi;
var re = '$1\n$2';

codepen.io/iiil/pen/hfgmo
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
div. Ставрополь
от 40 000 до 90 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽