多次替换字符串之间的字符串

时间:2018-04-02 12:20:05

标签: javascript regex

我试图在字符串之间替换字符串,并且它会多次发生。

目前,我的代码是

var str = `**Bolded text**`
var re = new RegExp(/\*\*(.*)\*\*/gi)
let newStr = str.replace(re, "<b>$1</b>")
console.log(newStr);

该示例正常工作并返回:

<b>Bolded text</b>

但是,如果我尝试在字符串中添加多个**文本**,则表明它不正确

var str = `**Bolded text 1** **Bolded text 2**`

返回

<b>Bolded text 1** **Bolded text 2</b>

我希望它返回

<b>Bolded text 1</b> <b>Bolded text 2</b>

我将如何做到这一点?

1 个答案:

答案 0 :(得分:3)

正则表达式贪婪的问题,你需要在这里添加问号/\*\*(.*?)\*\*/gi

https://regex101.com/r/c8bwEg/1

贪婪会消耗尽可能多。

&#13;
&#13;
var str = `**Bolded text 1** **Bolded text 2**`
var re = new RegExp(/\*\*(.*?)\*\*/gi)
let newStr = str.replace(re, "<b>$1</b>")
console.log(newStr);
&#13;
&#13;
&#13;