Удалить тире и обернуть <li>с помощью javascript / jquery - PullRequest
2 голосов
/ 15 апреля 2019

У меня есть «список», который выглядит так:

-1+ years of experience in End User Support<br>
-Experience re-imaging laptops<br>
-Great customer service experience

И я хочу превратить его в неупорядоченный список.

Я завернул блок в <ul></ul>, а затем использовал этот код, чтобы удалить <br> и обернуть <li></li>:

$('.entry-content ul').each(function() {
    var $this = $(this);
    $this.html($this.html().replace(/[^\r\n]+/g, '<li>$&</li>'));
});

Выводит неупорядоченный список следующим образом:

  • -1 + многолетний опыт поддержки конечных пользователей
  • - опыт переосмысления ноутбуков
  • -Большой опыт обслуживания клиентов

Но я тоже не знаю, как убрать тире. Я попытался сделать вторую функцию замены после первой, как это: $this.html($this.html().replace((/-/g, ' '));, но это не сработало.

Как мне этого добиться?

Ответы [ 2 ]

2 голосов
/ 15 апреля 2019

var str = str = "-Experience re-imaging laptops";

console.log(str.replace(/^-/, ''));
0 голосов
/ 15 апреля 2019

Ваш опубликованный код на самом деле не удаляет теги <br>, вы просто не видите их в результатах. Я бы заменил их и любое "-" после новой строки или в начале текста на новые строки, а затем заменил, как указано выше.

$('.entry-content ul').each(function() {
  var $this = $(this);

  $this.html(
    $this
      .html()
      .trim()
      .replace(/^-|[\r\n]+-|<br>/g, "\n")
      .replace(/[^\r\n]+/g, '<li>$&</li>')
  );
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class=entry-content>
<ul>
-1+ years of experience in End User Support<br>
-Experience re-imaging laptops<br>
-Great customer service experience
  </ul>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...