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, "<br> " );
这样str中所有的/r/n就替换成<br>了.然后可以将其存入数据库。

在取出的时候 只用将值在替换回来即可
var  reg = new  RegExp( " <br> " , " g " );
stt =  str.replace(reg, " /r/n " );
document.getElementById( " textarea " ).value = str;



下面是我写的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;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值