我正在制作一个简单的基于 JavaScript 的 WYSIWYG 编辑器,使用正则表达式来转换为 html。
这是我正在使用的javascript转换方法
message = message.replace(/\*\*(.*)\*\*/g, "<b>$1</b>");
它将两个 ** 包围的文本转换为粗体。 问题是它并没有对每个实例都这样做。 相反,它从 ** 的第一个实例到最后一个实例执行此操作。
所以**粗体文本** **粗体文本**
给我
粗体文字* *粗体文字
<b>bold text* *bold text</b>
而不是
<b>bold text</b> <b>bold text</b>
如何设置它来转换每个实例而不是将它们分组在一起?
最佳答案
您需要将量词更改为.*?
以使其不贪婪:
message = message.replace(/\*\*(.*?)\*\*/g, "<b>$1</b>");
// ^
关于Javascript正则表达式不格式化每个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8727755/