textarea 存储与显示 保持格式

今天遇到的一个问题:在数据添加页面的textarea框中写入有回车换行和空格的数据,但是传到数据库之后显示到网页上的内容却没有格式,全部排成了一排

网上查了很多,终于使得网页和textarea里格式保持一致了,这里记个笔记

js函数:               

/**
* @funciton 转换textarea存入数据库的回车换行和空格  textarea ---  数据库,用val取数据,置换'\n'
*/
function textareaTo(str){
    var reg=new RegExp("\n","g");
    var regSpace=new RegExp(" ","g"); 
    str = str.replace(reg,"<br>");
    str = str.replace(regSpace,"&nbsp;");
    return str;
}

/**
* @funciton  数据库 ---  编辑页面  .val(str)
*/
function toTextarea(str){
    var reg=new RegExp("<br>","g");
    var regSpace=new RegExp("&nbsp;","g");
    str = str.replace(reg,"\n");
    str = str.replace(regSpace," ");   
    return str;
}

输入框中:
<textarea id='text'></textarea>

1)用val()获取内容

$('#text').val();
这时的内容包含:文字,回车换行:'\n',空格:' '    但是如果直接传入数据库,格式会被去掉

2)使用上面转换函数

textareaTo($('#text').val());   将文本转换为了HTML的格式,'\n'   转换为   <br/>,' ' 转换为 &nbsp;
3)然后从数据库显示到页面上

<div id='content'></div> // 数据是data
$('#id').html(data); // 直接显示的就是含回车换行和空格的

4)从数据库显示到textarea中  //数据data

$('#text').val(toTextarea(data));   使用函数toTextarea()函数将html格式内容转换为文本格式:

5) 前面一直使用的是val()获取textarea内容和显示内容到textarea中,所以在转换函数中用的是 :'\n'

但是当使用:$('#text').text();获取内容的时候,这时的回车换行是:'\r',所以转换函数里面的 '\n' 要换成 '\r',这是两个 text() 和 val() 的一个区别,注意不要混淆了,若是'\r\n'一起使用,我测试的是失败,不能正确转换格式

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值