JavaScript RegExp列表问题



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

它在这里:我有这样的文本,例如:

let text = "Du bist der beste Mensch";

我需要转换";der beste Mensch";部分进入:

<ul>
<li>der<li>
<li>beste<li>
<li>Mensch<li>
</ul>

因此,一般输出应该是:

Du bist

  • der
  • beste
  • Mensch

我尝试使用正则表达式,结果得到:

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

如果我放<ul><li>$1</li></ul>,它当然会给我那些被装箱在ul和li标签中的单词,这不是我想要的。

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

Du bist 
- der
- beste
- Mensch

您可以将replace嵌套到两个步骤中:

  1. 替换<ul>标记内的整个列表
  2. 替换<li>标签内的每个列表项

const text = `Du bist 
- der
- beste
- Mensch
`;
const result = text.replace(/(?:(?:^|n+)- [^n]+)+/g, 
list => `<ul>${list.replace(/(?:^|n+)- ([^n]+)/g, '<li>$1</li>')}</ul>`
);
console.log(result);

最新更新