摘要:用javascript將字串中的換行替換成html的換行
update 2010/01/02 :
沒有很仔細的看資料.結果繞了很大一圈.
感謝91哥的提醒.
Replace的用法就如topcat的文章所寫的,
replace的第一個參數是可以是字串或是regular expression.
如果使用字串,則會區分大小寫,且遇到第一個相符的字串後就會停止,
如果要不分大小寫或是要替換全部的相符的字串
則需要使用regexp.
因為目前只需要將全部相符的換行字元換掉,所以只需使用g這個modifier,
範例(將換行字元(\r\n)替換成html的換行標籤(<br />)):
regexp的modifier說明
i | Perform case-insensitive matching |
g | Perform a global match (find all matches rather than stopping after the first match) |
m | Perform multiline matchin |
參考資料:
replace
http://www.w3schools.com/jsref/jsref_replace.asp
RegExp
http://www.w3schools.com/jsref/jsref_obj_regexp.asp
======================
update at 2009/12/31
感謝vdonkey提供更簡單的方法.
{
return strOrg.replace(new RegExp(strFind,"g"),strReplace);
}
======================
因為要寫一個html即時預覽的功能,
所以需要一段程式是將javascript中的換行(\n)替換成html中的換行(<br />)
因為asp都是用replace替換,然後查一下javascript的手冊,也有replace的函數,
所以以為只要寫下面這段程式就可以了,
只是這樣執行後竟然只有一個換行
這時才發現他的replace只會替換字串中第一個符合的字串,
所以只好自己在寫個替換全部符合字串的函數...
function ReplaceAll(strOrg,strFind,strReplace){
var index = 0;
while(strOrg.indexOf(strFind,index) != -1){
strOrg = strOrg.replace(strFind,strReplace);
index = strOrg.indexOf(strFind,index);
}
return strOrg
}
用法如下: