2011-04-11 56 views
11

我有一個字符串替換的JavaScript

var str= 'asdf<br>dfsdfs<br>dsfsdf<br>fsfs<br>dfsdf<br>fsdf'; 

我想用

str.replace(/<br>/g,'\r'); 

更換<br>\r字符的所有實例,但它僅更換第一<br> ...任何想法爲什麼?

+0

'替換(/
/g,'\ r')'替換所有'
'這裏......或者您是否只想替換第一個'
'? – KooiInc 2011-04-11 10:17:04

+1

還有其他一些事情正在發生。你粘貼的代碼片段就是你想要的。下面是從node.js的輸出:' 'ASDF
dfsdfs
dsfsdf
FSFS
dfsdf
fsdf'.replace(/
/克,' \ R')= 'ASDF \ rdfsdfs \ rdsfsdf \ rfsfs \ rdfsdf \ rfsdf' ' – odrm 2011-04-11 10:18:38

+0

這應該工作,你確定這是原始代碼嗎? – Kevin 2011-04-11 10:19:53

回答

22

該代碼應該工作 - 與/g標誌,它應該取代所有<br> s。這個問題可能在其他地方。

試試這個:

str = str.replace(/<br>/g, '\n'); 

'\n'可能比\r更合適 - 它應該是全球公認的一個換行符,而\r是不常見的自身。例如,在Firefox上,\r未呈現爲換行符。

-8

使用:

str.replace(/<br>/gi,'\r'); 

/克僅用於第一個匹配。/gi用於全局替換

+12

這是錯的。 g =>全局i =>不區分大小寫 – Kek 2012-07-17 13:10:02