JavaScript RegExp与列表的问题
人们! 我有一个问题,我不知道如何用ul,li标签替换我的文本 这是: 我有这样的文本,例如: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 最佳 门希 因此,一般输出
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中的正则表达式。多谢各位!