有关js中replace问题与textarea回车符问题

发布时间:2020-09-17编辑:脚本学堂
js中使用replace以及对textarea中处理时经常会遇到回车符问题,本文为大家做一个详细的剖析,希望对大家有所帮助。

在textarea中输入回车符
在js读取textarea中的值有rn然后到业务层转换到string中就有可能变成空格形式然后被存入数据库,当在取出此值的时候则会变成空格的形式,因此我们需要将不显示的rn替换一下。

在js取textarea的时候:
如果用
 

复制代码 代码示例:
var str = document.getElementById("textarea").value;
str = str.replace("rn","<br>");


则只会将第一个rn替换成<br>,如何将所有n个rn替换成<br>呢?
难道要无限个replace吗?其实不用,replace可以和正则表达式结合,一次替换所有的rn。
 

复制代码 代码示例:
var reg=new RegExp("rn","g");
str= str.replace(reg,"rn");

这样str中所有的rn就替换成<br>了.然后可以将其存入数据库。
在取出的时候 只用将值在替换回来即可
 

复制代码 代码示例:
var reg=new RegExp("<br>","g");
stt= str.replace(reg,"rn");
document.getElementById("textarea").value=str;

以下是二个自定义的函数,可以直接放到通用包中,以后使用替换就行了。
 

复制代码 代码示例:

<script language="javascript">
function replaceTextarea1(str){
var reg=new RegExp("rn","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,"rn");
str = str.replace(reg1," ");

return str;
}
</script>