Javascript正则表达式不格式化每个实例

标签 javascript jquery regex

我正在制作一个简单的基于 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/

相关文章:

javascript - 我怎样才能在 React Native Navigator 中禁用向后滑动

jquery - 如何准确判断一个元素是否可滚动?

javascript - Jquery- offsetLeft 在向右滚动时不起作用

javascript - 使用javascript从url中提取数字?

r - 在 R 中的特定模式之后的任何位置查找第一个数字

javascript - 使用 onsubmit 清除默认值

javascript - Ajax 调用时出错 -> 发送两个文件而不是一个

javascript - 方法外的可变内容

javascript - 使用jquery获取div中存在的隐藏参数的值

regex - perl 一行正则表达式转义 ^ 字符