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

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 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵