2011-12-10 50 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