处理多个JavaScript替换匹配

时间:2009-06-17 21:39:22

标签: javascript regex replace

我有以下字符串:

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>!

如何更改模式或基本代码以便按照我想要的方式进行替换?

2 个答案:

答案 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的参考。