蛋炒贩炒蛋 2021-07-26 09:52 采纳率: 100%
浏览 964
已结题

uniapp 中怎样去除一段html的空格

let content = “

   「喂!霍尔玛,你有什么计划了吗?」

  明明是在小跑,却几乎跟不上比自己腿短、且还是行走状态的少女,简直不可思议。

  「…不,完全没有。」

「喂!霍尔玛,你有什么计划了吗?」

xx

“;

问题描述:如上文,是一段后端返回的html;由变量content接收,现在的需求是要去除这段html p标签内容的首尾空格,不能影响除首尾外的空格;由于是uniapp,有h5、安卓、iOS三个端,所以不能使用document;如何解决

  • 写回答

4条回答 默认 最新

  • 蛋炒贩炒蛋 2021-07-26 12:18
    关注
    let content = `
    <p>&nbsp;「喂!霍尔玛,你有什么计划了吗?」</p>
    <p>  明明是在小跑,却几乎跟不上比自己 腿 短、且还是行走状态的 少 女,简直不可思议。</p>
    <p> &emsp;「…………不,完全没有。」</p>
    <p style="color:red;">「喂!霍尔玛,你有什么计划了吗?」&emsp;</p>
    <p style="text-indent: 2em;"> xxx xxx</p>
    `
        let fomart = "";
        let match = content.match(/.*/g);//正则拿到每个p标签
        match.forEach((d, i) => {
            let pSty;
            pSty = d.match(/<p .+?>/);//因为要保留P标签中可能出现的除了首行缩进的其他行内样式
            let temp = d.match(/>.*</g);//正则匹配正文
            temp = temp ? temp[0].replace(/>|</g, "") : "";//正则拿到P标签内正文
            pSty = pSty ? pSty[0] : "";//正则拿到行p标签的开始标签
            temp = temp.replace(/(^\s*|\s*$)/g, "")//去除正文中首尾空格
            temp = temp.replace(/((^&emsp;|&nbsp;)|(&emsp;|&nbsp;$))/g, "")//去除空格转译字符
            // 下方代码用于保留原先样式并添加首行缩进
            if (pSty) {//拥有行内样式
                if (pSty.indexOf("text-indent") == -1) {//没有使用首行缩进
                    let pStyStr = pSty.match(/["|'](.*)["|']/g)[0];//拿到行内样式字符串
                    pStyStr = pStyStr.replace(/'|"/g, "");//清除掉单引号与双引号
                    pStyStr = "text-indent: 2em;" + pStyStr;//在行内样式字符串头部添加缩进两字符
                    pSty = `<p style="${pStyStr}">`//最终得到修改后的p标签的开始标签
                }
            } else {
                pSty = `<p style="text-indent: 2em;">`// 没有行内样式就直接添加缩进
            }
            fomart += `${pSty}${temp}</p>`;// 拼接成为格式化的正文
        })
    
        console.log(fomart)
    

    尝试了一下这样应该可行

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 请回答用户的提问 4月11日
  • 系统已结题 8月3日
  • 已采纳回答 7月26日
  • 修改了问题 7月26日
  • 展开全部

悬赏问题

  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题