2009-06-17 33 views
4

我有以下字符串:處理多個JavaScript取代匹配

This *is* a *test*! 

我要大膽使用*字符包圍的話(所以「是」,並在例如「測試」)。

我有以下的JavaScript代碼:

var data = "This *is* a *test*!"; 
return data.replace(/\*(.*)\*/g, <b>$1</b>); 

當返回的字符串,我得到如下:

This <b>is* a *test</b>! 

我怎樣才能改變模式或基本代碼,以便做更換我想要的方式?

回答

5

與我的HTML一團糟......

var result = "This *is* a *test*!".replace(/\*(.*?)\*/gi, "<b>$1</b>"); 
+1

在這個例子中,你並不需要`i`修飾符 - `。*`可以匹配任何大小寫字符,`\ *`不受大小寫影響。 – redbmk 2012-11-09 21:38:06

2

你需要讓圖形非貪婪通過添加 - 運算符*之後:

var data = "This *is* a *test*!"; 
return data.replace(/\*(.*?)\*/g, "<b>$1</b>"); 

這裏是一個參考來自Mozilla Developer Center的JavaScript RegExp。