2010-07-08 195 views
1

我的HTML代码作为字符串变量正则表达式替换字符串

像= “<跨度>西班牙将赢得....... </SPAN >”

,我想heightlight“温泉“在字符串。

我必须使用正则表达式,我应该怎么写在西班牙,它忽略了span标记的“温泉”的格局,但亮点。

感谢

回答

6

JavaScript不支持回顾后,让你有点有限,但这应该工作:

\bSpa(?!n[^>]*>) 

说明:

\b:断言匹配从单词边界开始。

Spa:匹配Spa

(?!...):断言,这是不可能匹配以下:

n:一个n,随后...

[^>]*:零个或多个非>字符,接着...

>:一个>

+0

@Gert G:[报价]我想在字符串heightlight “水疗” 了[/ quote] – jigfox 2010-07-08 16:25:58

1

你可以试试这个:

var s = "<span> Spain will win ....... </span>Spaniel"; 
s.replace(/(spa(?!n[^>]*>))/ig,'<span class="highlight">\$1</span>') 
+0

@Gert G:是的,我试过!我没有强调西班牙,但并没有要求,更应突出从“”“西班牙”的只有“水疗”,而不是“温泉”。所得到的字符串: “<跨度类=”亮点“>温泉在将赢得.......<跨度类=”亮点“>温泉尼尔” – jigfox 2010-07-08 16:23:45