我有以下字符串:
This *is* a *test*!
我想加粗*字符所包围的单词(示例中为“is”和“test”)。
我有以下JavaScript代码:
var data = "This *is* a *test*!";
return data.replace(/\*(.*)\*/g, <b>$1</b>);
返回字符串后,我得到以下内容:
This <b>is* a *test</b>!
如何更改模式或基本代码以便按照我想要的方式进行替换?
答案 0 :(得分:5)
搞砸了我的HTML ......
var result = "This *is* a *test*!".replace(/\*(.*?)\*/gi, "<b>$1</b>");
答案 1 :(得分:2)
您需要通过在*:
之后添加?-operator来使模式非贪婪var data = "This *is* a *test*!";
return data.replace(/\*(.*?)\*/g, "<b>$1</b>");
以下是来自Mozilla Developer Center的JavaScript RegExp的参考。