JavaScript RegExp与列表的问题

JavaScript RegExp与列表的问题,javascript,html,regex,frontend,html-lists,Javascript,Html,Regex,Frontend,Html Lists,人们! 我有一个问题,我不知道如何用ul,li标签替换我的文本 这是: 我有这样的文本,例如: let text = "Du bist der beste Mensch"; 我需要将“der Best Mensch”部分转换为: <ul> <li>der<li> <li>beste<li> <li>Mensch<li> </ul> der 最佳 门希 因此,一般输出

人们! 我有一个问题,我不知道如何用ul,li标签替换我的文本

这是: 我有这样的文本,例如:

let text = "Du bist der beste Mensch";
我需要将“der Best Mensch”部分转换为:

<ul>
 <li>der<li>
 <li>beste<li>
 <li>Mensch<li>
</ul>
  • der
  • 最佳
  • 门希
因此,一般输出应为:

杜比斯特

  • der
  • 最佳
  • 门希
我尝试使用正则表达式,结果是:

text.replace(/(?:^|\n)- (\S+)/g, '<li>$1</li>');
text.replace(/(?:^|\n)-(\S+)/g,
  • $1
  • );

    如果我把
    • 放入$1
      • ,它当然会给我那些用ul和li标签装箱的单词,这不是我想要的。

        假设这是原始文本的格式:

        Du bist 
        - der
        - beste
        - Mensch
        
        您可以将
        replace
        嵌套为两个步骤:

      • 替换
        标签内的整个列表
      • 替换
      • 标记内的每个列表项
      • const text=`Du bist
        -德
        -贝斯特
        -门奇
        `;
        const result=text.replace(/(?:(?:^ |\n+)-[^\n]+)+/g,
        list=>`
          ${list.replace(/(?:^\n+)-([^\n]+)/g,
        • $1
        • )}
        ` );
        控制台日志(结果)假设这是原始文本的格式:

        Du bist 
        - der
        - beste
        - Mensch
        
        您可以将
        replace
        嵌套为两个步骤:

      • 替换
        标签内的整个列表
      • 替换
      • 标记内的每个列表项
      • const text=`Du bist
        -德
        -贝斯特
        -门奇
        `;
        const result=text.replace(/(?:(?:^ |\n+)-[^\n]+)+/g,
        list=>`
          ${list.replace(/(?:^\n+)-([^\n]+)/g,
        • $1
        • )}
        ` );
        控制台日志(结果)我认为这不是一项使用RegExp的任务。我能为您推荐一种不使用regex的方法吗?Teemu,我只是想制作自己的文本编辑器,将文本包装成****以使其粗体或。。。使其倾斜。而且常客的表情对我很有帮助。所以我想也许他们也能帮我处理列表…armin yahya,是的,拜托,RegExps可以做很多事情,但这似乎超出了他们的范围。您可以澄清一下,是要创建实时标记,还是要将列表作为文本显示在文本编辑器中?另外,您如何确定列表的实际起始位置?在这个例子中,它从“der”开始,但是如果这是一个文本编辑器,文本几乎可以有任何内容。我认为这不是一个使用RegExp的任务。我能给你一个没有regex的建议吗?Teemu,我只是想做一个我自己的文本编辑器,你知道,将文本包装成****以使其加粗或。。。使其倾斜。而且常客的表情对我很有帮助。所以我想也许他们也能帮我处理列表…armin yahya,是的,拜托,RegExps可以做很多事情,但这似乎超出了他们的范围。您可以澄清一下,是要创建实时标记,还是要将列表作为文本显示在文本编辑器中?另外,您如何确定列表的实际起始位置?在这个例子中,它从“der”开始,但是如果这是一个文本编辑器,文本几乎可以有任何内容。多谢各位!我想我需要更多地学习JS中的正则表达式。多谢各位!