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

let content = “

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

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

  「…不,完全没有。」

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

xx

“;

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

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)

尝试了一下这样应该可行

让后端把数据处理好了再放到前端来。

你为什么要管那么多呢,你管他几个端,跟你有什么关系,你只需要操作数据就可以了啊,其他跟你没关系啊,你拿到后端给你的 html 字符串,将你需要的数据拿出来,修改完再拼接回去就完事了,比如说你只需要修改 p 标签里的内容,你用字符串截取把数据拿出来,修改完再拼回去,他几个端跟你没关系

img

写一个方法,根据运行环境不同,运行不同代码。用if判断