2012-06-09 53 views
0

我想用正則表達式替換一些單詞。Javascript和正則表達式替換多個文本

例如:

var str ="hello world |bo hello world bo| hello world |co hello world co| hello world,hello world |jp hello world hello world jp| " 

var n=str.replace("world","stackoverflow"); 

但是這裏面|bo ... bo||co ... co||jp ... jp|不應修改世界上的內容計算器。

+0

請澄清:你的意思是說,替代無法將這些字符串對中完成,有點像「如果沒有引號內更換 –

+0

我改寫你的問題,使其更容易理解([這是什麼?原來的問題](http://stackoverflow.com/revisions/10961486/1))似乎你想要在任何地方取代'world',但不是在它們位於這些分隔符之內時,也就是說,可能* I *沒有如果是這樣的話,請澄清它 –

回答

2

使用/g指示全局替換:

var n=str.replace(/world/g,"stackoverflow"); 

這裏的a working fiddle證明。

附加信息

就以正則表達式標誌來看看MDN for more information

+0

不需要修改| bo |,| co ... co |,| jp ... jp |。但是這些正則表達式會修改所有的「世界」改爲「stackoverflow」。 – user1431897

0

考慮到這一點,它會將「bb」替換爲「xx」,但不會在「bb」被「a」包圍時取代。

t = "bb abba bb abba bb"; 
t = t.replace(/(?!a)bb(?!a)/g, "xx"); 
// t === "xx abba xx abba xx"