2011-12-10 90 views
3

我有一個字符串,例如:RegExp替換每一個星號?

"The red letters in the following words are suffixes: beauti*ful*, speech*less* and invinc*ible*." 

我要替換的每個**對與<span class='red'>的第一和第二帶</span>。我可以在for循環中執行此操作,但想知道如何使用RegExp執行此操作。

回答

7

如何:

s = s.replace(/\*([^*]*)\*/g, "<span class='red'>$1</span>"); 

\*([^*]*)\*是有點混亂,它將搜索:

  • \* - 第一個星號
  • ([^*]*) - 星號(捕捉的內容,所以我們可以用$1代替
  • \* - s的Econd星號

工作例如:http://jsbin.com/isufes

+0

謝謝了Kobi。這工作\ \治療\ *! – Shoe

+0

@Shoe您可能想要注意到,這也會讓您面對XSS攻擊。 –

+0

@Shoe - 沒問題!當然還有其他方法,但在我看來這是最優雅的。一般來說,你可以嘗試像http://jsbin.com/isufes/2這樣的東西,但這裏太複雜了。 – Kobi