el表达式中换⾏_textarea⾥显⽰换⾏br
在easyui中的datagrid中使⽤⾏内编辑时textarea的换⾏保存到mysql数据库为\n
在textarea中输⼊回车符
在js读取textarea中的值有\r\n然后到业务层转换到string中就有可能变成空格形式然后被存⼊数据库,当在取出此值的时候则会变成空格的形式,因此我们需要将不显⽰的\r\n替换⼀下。
在js取textarea的时候:
如果⽤
var str = ElementByIdx_x_x("textarea").value;
str = place("\r\n","<br>");
则只会将第⼀个\r\n替换成<br>,如何将所有n个\r\n替换成<br>呢?难道要⽆限个replace吗?
其实不⽤,replace可以和正则表达式结合,⼀次替换所有的\r\n。
var reg=new RegExp("\r\n","g");
str= place(reg,"\r\n");
这样str中所有的\r\n就替换成<br>了.然后可以将其存⼊数据库。
在取出的时候 只⽤将值在替换回来即可
var reg=new RegExp("<br>","g");
stt= place(reg,"\r\n");
更加详细的分析和应⽤可以参考JavaScript的replace⽅法与正则表达式结合应⽤讲解
下⾯是我写的2个函数 直接放到通⽤包中 以后使⽤可以替换
function replaceTextarea1(str){
var reg=new RegExp("\r\n","g");
var reg1=new RegExp(" ","g");
str = place(reg,"<br>");
str = place(reg1,"<p>");
return str;
}
function replaceTextarea2(str){
var reg=new RegExp("<br>","g");
var reg1=new RegExp("<p>","g");
str = place(reg,"\r\n");
str = place(reg1," ");
el表达式获取值return str;
}
2. html中通
标签提交的内容会将回车转变成"\r\n",再将提交的内容放⼊
标签中显⽰时,回车符会还原成正常的换⾏。但当带有"\r\n"的字符串放在html的普通⽂本域中显⽰时 ,原来的换⾏效果会转变成空格,因此,需要在显⽰前将字符串中的"\r\n"替换为""。另外,还有⼀点需要注意:EL表达式会将""换⾏符转变成"",""分别对应"",也就是说,到了页⾯上,还是显⽰为""(呵呵,EL的智能化程度太⾼了),为了补救这⼀点,需要使⽤jsp标签(
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论