textarea里显示换行

时间:2022-11-12 14:07:15

textarea换行

在easyui中的datagrid中使用行内编辑时textarea的换行保存到mysql数据库为\n
在textarea中输入回车符 在js读取textarea中的值有\r\n然后到业务层转换到string中就有可能变成空格形式然后被存入数据库,当在取出此值的时候则会变成空格的形式,因此我们需要将不显示的\r\n替换一下。

  在js取textarea的时候:

  如果用

var str = document.getElementByIdx_x_x("textarea").value;
str = str.replace("\r\n","<br>");

  则只会将第一个\r\n替换成<br>,如何将所有n个\r\n替换成<br>呢?难道要无限个replace吗?

  其实不用,replace可以和正则表达式结合,一次替换所有的\r\n。

var reg=new RegExp("\r\n","g");
str= str.replace(reg,"\r\n");

  这样str中所有的\r\n就替换成<br>了.然后可以将其存入数据库。

  在取出的时候 只用将值在替换回来即可

var reg=new RegExp("<br>","g");
stt= str.replace(reg,"\r\n");
document.getElementByIdx_x_x("textarea").value=str;

  更加详细的分析和应用可以参考JavaScript的replace方法与正则表达式结合应用讲解

  下面是我写的2个函数 直接放到通用包中 以后使用可以替换

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;
}

 2. html中通 

标签提交的内容会将回车转变成"\r\n",再将提交的内容放入

标签中显示时,回车符会还原成正常的换行。但当带有"\r\n"的字符串放在html的普通文本域中显示时 ,原来的换行效果会转变成空格,因此,需要在显示前将字符串中的"\r\n"替换为""。另外,还有一点需要注意:EL表达式会将""换行符转变成"","<"和">"分别对应"<"和">",也就是说,到了页面上,还是显示为""(呵呵,EL的智能化程度太高了),为了补救这一点,需要使用jsp标签(