日期:2014-05-16  浏览次数:20426 次

求個正則表達式!
eg. : font<font color='red'>font</font>
假如我要替換f或o或n或t或等等 為 <b>f或o或n或t或等等</b>
但是又不希望<font和</font> 標籤中的font中替換掉。

比如我要替換的是on
則我需要的結果是
f<b>on</b>t<font color='red'>f<b>on</b>t</font>

我像了半天也沒想到什麼辦法。
故來求教。。。

------解决方案--------------------
javacript不支持(?<!)这样的零宽断言有时候确实比较麻烦。

你试试下面这种。
JScript code
var str ="<t>font<font color='red'>font</font>aonf"

str = str.replace(/([^<>]*)<|>([^<>]*)<|>([^<>]*)/g,
function($_1){
  return $_1.replace('on','<b>on</b>') 
})
alert(str)

------解决方案--------------------
1、“為 <b>f或o或n或t或等等</b>”:
JScript code
"font<font color='red'>font</font>".replace(/(?=[^>]*(?=<))[font]/gi, "<b>$&</b>")