js中的replace问题和textarea回车符问题

js中的replace问题和textarea回车符问题
    在textarea中输入回车符 在js读取textarea中的值有\r\n然后到业务层转换到string中就有可能变成空格形式然后被存入数据库,当在取出此值的时候则会变成空格的形式,因此我们需要将不显示的\r\n替换一下。
    在js取textarea的时候:
    如果用
    
var  str  =  document.getElementById( " 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.getElementById(
" 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;
}


java lover
posted on 2009-11-01 12:20 becket_zheng 阅读(91) 评论(0)   编辑   收藏 所属分类: 网页web前端技术

你可能感兴趣的:(js中的replace问题和textarea回车符问题)