为了账号安全,请及时绑定邮箱和手机立即绑定

有条件地在<li>标记中换行并删除第一个字符

有条件地在<li>标记中换行并删除第一个字符

慕标5832272 2021-04-26 04:16:46
使用以下html,我需要在<li>以破折号开头的每行周围包裹一个标签,剥离破折号,然后将整个列表包装在一个<ul>标签中。<div class="json-content">This line doesn't have a dashThis line also doesn't have a dash -An unordered list should start here because the line starts with a dash-This line starts with a dash and has some dashes-in-the-middle-Another line that starts with a dashAnd another a line that doesn't have a dash.</div>我使用下面的代码(基于一个先前的问题)来实现这一点,但是当div中还有其他非破折号的文本时,它<li>也会在这些行周围添加一个标记。我知道部分问题是它首先要删除破折号,但是我尝试使用正则表达式测试器进行修改,但我只是想不通。我怎样才能做到这一点? $('.json-content').each(function() {      var $this = $(this);      $this.html(        $this          .html()          .trim()          .replace(/^-|[\r\n]+-/g, "\n")          .replace(/[^\r\n]+/g, '<li class="item">$&</li>')              );          $(this).find('li.item').wrapAll( "<ul class='json-list' />");      });这是一个小提琴:https : //jsfiddle.net/9xd2vacj/2/最终结果应如下所示:这行没有破折号这行也没有破折号无序列表应从此处开始,因为该行以破折号开头这行以破折号开始,中间有一些破折号另一行以破折号开头另一行没有破折号。
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 141 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信