我试图在字符串之间替换字符串,并且它会多次发生。
目前,我的代码是
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>
我将如何做到这一点?
答案 0 :(得分:3)
正则表达式贪婪的问题,你需要在这里添加问号/\*\*(.*?)\*\*/gi
https://regex101.com/r/c8bwEg/1
贪婪会消耗尽可能多。
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;