问题背景:表单长文本字段填写无引入富文本编辑器,使用textarea输入,打印表单时,将文本放至表格td内,无法保留textarea的内容格式。主要问题表现为:

①换行符变为空格展示,没有换行显示。

②多个空格变为单个空格显示。

问题解决:

/**

* 格式化文本为html标签

* contentId,需进行格式转换的元素ID

**/

function formatText(contentId){

var content = $('#' + contentId);

content.each(function(){

var txt = $(this).text();

//多个空格变成单个空格显示,所以需替换空格为

txt = txt.replace(new RegExp(' ', 'g'), ' ');

var j =0;

var span = document.createElement("span");

for(i=0;i

if(txt.charAt(i)=='\n'){

//以换行符做分割

var partTxt = txt.slice(j,i);

var p = document.createElement("p");

p.innerHTML = partTxt;

span.append(p);

//由于p标签内容为空时,页面不显示空行,加一个

if(partTxt==''){

span.appendChild(document.createElement("br"));

}

j = i + 1;

}

}

var p_end = document.createElement("p");

p_end.innerHTML = txt.slice(j);

$(this).text('');

span.appendChild(p_end);

$(this).append(span);

});

}

继续深入:在项目中有打印的需求,当文本内容过多时,需分页显示。这时就需要把文本切割为多个单行的p标签文本,再去计算文本高度进行分页。切割方法按照固定的文本长度进行截断,元素高度属性clientHeight。

/**

* 格式化文本为html标签,并切割为多个单行p标签文本

* contentId,需进行格式转换的元素ID

**/

function formatText(contentId){

var content = $('#' + contentId);

content.each(function(){

var txt = $(this).text();

var j =0;

var span = document.createElement("span");

for(i=0;i

if(txt.charAt(i)=='\n'){

//以换行符做分割

var partTxt = txt.slice(j,i);

var outFlag = false;//溢出标识

for (var z = 0; z < partTxt.length; z++) {

//p标签一行展示长度为31的字符

var startIndex = z * 31;//开始下标

var endIndex = (z + 1) * 31;//结束下标

if (endIndex > partTxt.length) {

endIndex = partTxt.length;

outFlag = true;

}

var pTxt = partTxt.slice(startIndex, endIndex);

pTxt = pTxt.replace(new RegExp(' ', 'g'), ' ');

var p = document.createElement("p");

p.innerHTML = pTxt;

span.append(p);

if (outFlag) {

break;

}

}

//由于p标签内容为空时,页面不显示空行,加一个

if(partTxt==''){

span.appendChild(document.createElement("br"));

span.appendChild(p);

}

j = i + 1;

}

}

var p_end = document.createElement("p");

p_end.innerHTML = txt.slice(j).replace(new RegExp(' ', 'g'), ' ');

$(this).text('');

span.appendChild(p_end);

$(this).append(span.innerHTML);//去除span标签

});

}

js把txt转为html,js格式化文本为html标签相关推荐

  1. js将excel转为html,js中表格转为excel文件如何实现多sheet形式

    js中表格转为excel文件如何实现多sheet形式 var idTmr; function getExplorer() { var explorer = window.navigator.userA ...

  2. vba编程把纯文本转换成html,如何将一列文本与html标签转换为Excel中的vba格式文本...

    我想知道如何使用VBA脚本将带有html标签的整列单元转换为格式化文本(基于这些标签).如何将一列文本与html标签转换为Excel中的vba格式文本 使用下列内容: Sub Sample() Dim ...

  3. 前端js下载txt文本

    前端js下载txt文本 ​ 在web应用开发中下载为文本比较少,但是对于一些小说网站应用应该会比较多的! 闲话短说,直接上代码! 1.将下面代码这个保存为一个xxx.js var saveAs = s ...

  4. JS基于编码方式实现加密解密文本

    JS基于编码方式实现加密解密文本 严格来讲这是一种简单的编码方式:加密,将明文[注]转成编码.解密则是编码转码为明文本. [注:明文是指没有加密的文字(或者字符串),一般人都能看懂.] 下面源码用到 ...

  5. js 将小数转为科学记数法

    js 将小数转为科学记数法 例如将数字0.00342331转化为3.42331×10^-3的方式展示 先用toExponential方法把数字转为科学记数法的字符串,在用正则表达式将小数部分与10的几 ...

  6. JS将阿拉伯数字转为中文汉字

    JS将阿拉伯数字转为中文汉字 function Arabia_To_SimplifiedChinese(Num) {for (i = Num.length - 1; i >= 0; i--) { ...

  7. js将php时间戳转换成格式化日期

    //js将php时间戳转换成格式化日期function to_date(phpstr) {str = parseInt(phpstr) * 1000;//将php时间戳转化为整形并乘以1000var ...

  8. js将汉字转为相应的拼音

    js将汉字转为相应的拼音 <!DOCTYPE html> <html lang="zh"> <head><meta charset=&qu ...

  9. vuejs项目纯js导出word、在线下载富文本内容或者网页另存为word文件

    所有前端导入导出方法集合: 前端必备技能知识:JS导出Blob流文件为Excel表格.Vue.js使用Blob的方式实现excel表格的下载(流文件下载)_勤动手多动脑少说多做厚积薄发-CSDN博客_ ...

  10. download.js 实现txt,js文件等浏览器下载 而不是打开

    现在本人正在做聊天系统,最近支持收发文件,那下载当然是不可避免的 1.第一步想的是open一个窗口下载文件但事实证明显然不合适,现在的浏览器都是会主动拦截弹窗 2.a通过download属性通知浏览器 ...

最新文章

  1. 计算机攻防网站在线对攻,对攻
  2. 可编程led灯带原理_88张图搞定层板灯带的设计、安装、收口及检修!
  3. java反斜杠\的用法
  4. StringUtils.isBlank()检验String 类型的变量是否为空
  5. java正则表达式笔记
  6. django入门与实践 3-1 环境搭建
  7. java线程代码实现_Java 实现线程的2种方法的具体代码实例
  8. gateway请求拦截_一种网关对用户请求进行统一拦截判断是否放行的方法与流程...
  9. 怎么更改Windows11鼠标指针大小和样式
  10. 结对编程作业---电梯调度程序
  11. Python将某文件夹及其子文件夹下某种格式的文件移动到另一个指定的文件下
  12. 杭电acm 1205 吃糖果
  13. 判断输入的字符与已知字符相等_你会输入带圈字符吗?
  14. OpenCV — Otsu 算法
  15. Echarts图表移动端手机横屏展示
  16. python虚拟变量回归_Python中使用虚拟变量的OLS最佳解决方案?
  17. Git Re-Basin: Merging Models modulo Permutation Symmetries解读
  18. Java基础321 - 如何重写equals方法
  19. md文件打开方式推荐
  20. 通过cookie登录以及使用账号密码登录

热门文章

  1. wincc连接mysql数据库说明_wincc 数据库的连接方法
  2. SQL基本语法总结(含SQL代码)
  3. 计算机网络中的A类、B类、C类地址的划分
  4. DoIP(二)——报文类型
  5. 隔年增长的题_行测技巧:资料分析中隔年增长的解题关键
  6. Linux红帽认证最全介绍
  7. Ubuntu安装adobe字体
  8. 2021五一杯数学建模A题 疫苗生产问题
  9. pc软件签名:数字证书的使用
  10. 2019icpc计算机程序设计大赛,关于开展西安理工大学2019年程序设计竞赛暨ACM-ICPC大赛选拔赛的通知...