在textarea中輸入回車符 在js讀取textarea中的值有\(zhòng)r\n然后到業(yè)務(wù)層轉(zhuǎn)換到string中就有可能變成空格形式然后被存入數(shù)據(jù)庫,當(dāng)在取出此值的時(shí)候則會(huì)變成空格的形式,因此我們需要將不顯示的\r\n替換一下。
在js取textarea的時(shí)候:
如果用
var str = document.getElementById("textarea").value;
str = str.replace("\r\n","<br>");
則只會(huì)將第一個(gè)\r\n替換成<br>,如何將所有n個(gè)\r\n替換成<br>呢?難道要無限個(gè)replace嗎?
其實(shí)不用,replace可以和正則表達(dá)式結(jié)合,一次替換所有的\r\n。
var reg=new RegExp("\r\n","g");
str= str.replace(reg,"\r\n");
這樣str中所有的\r\n就替換成<br>了.然后可以將其存入數(shù)據(jù)庫。
在取出的時(shí)候 只用將值在替換回來即可
var reg=new RegExp("<br>","g");
stt= str.replace(reg,"\r\n");
document.getElementById("textarea").value=str;
更加詳細(xì)的分析和應(yīng)用可以參考
JavaScript的replace方法與正則表達(dá)式結(jié)合應(yīng)用講解
下面是我寫的2個(gè)函數(shù) 直接放到通用包中 以后使用可以替換

function replaceTextarea1(str)
{
var reg=new RegExp("\r\n","g");
var reg1=new RegExp(" ","g");
str = str.replace(reg,"<br>");
str = str.replace(reg1,"<p>");
return str;
}



function replaceTextarea2(str)
{
var reg=new RegExp("<br>","g");
var reg1=new RegExp("<p>","g");
str = str.replace(reg,"\r\n");
str = str.replace(reg1," ");
return str;
}