如何处理textarea换行
如何处理textarea换行textarea换行时主要遇到的有以下几个问题
1、在textarea中输入回车符 在js读取textarea中的值有\r\n然后到业务层转换到string中就有可能变成空格形式然后被存入数据库,当在取出此值的时候则会变成空格的形式。因此我们需要将不显示的\r\n替换一下。
原因:
这是因为textarea里输入和车出现的是编码vbCrlf,页面读取数据库显示的内容必须有<br/>才可以显示换行,所以我们要做的就是在存入数据时把vbCrlf换成<br/>。
处理方式:
用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. EL表达式会将"</br>"换行符转变成"</br>","<"和">"分别对应"<"和">",也就是说,到了页面上,还是显示为"</br>",为了补救这一点,需要使用jsp标签(<%= %>)来进行显示。
所以当需要在普通文本域中显示由<textarea>提交的内容时,可以直接在数据库里存储不经过处理的字符串,而只在显示前将"\r\n"替换为"</br>",然后在页面上使用<%= %>来显示这些内容.
3. 如何将通过textbox提交到数据库中的空格和回车正确显示出来
public string MyReplace(string mystr)
{
if(mystr == null || mystr == "" )
{
return(" ");
}
else
{
mystr = mystr.Replace("\n\r","<br>");
mystr = mystr.Replace("\r","<br>");
mystr = mystr.Replace("\t"," ");
return(mystr);
}
}