let content = “
「喂!霍尔玛,你有什么计划了吗?」
明明是在小跑,却几乎跟不上比自己腿短、且还是行走状态的少女,简直不可思议。
「…不,完全没有。」
「喂!霍尔玛,你有什么计划了吗?」
xx
“;问题描述:如上文,是一段后端返回的html;由变量content接收,现在的需求是要去除这段html p标签内容的首尾空格,不能影响除首尾外的空格;由于是uniapp,有h5、安卓、iOS三个端,所以不能使用document;如何解决
let content = “
「喂!霍尔玛,你有什么计划了吗?」
明明是在小跑,却几乎跟不上比自己腿短、且还是行走状态的少女,简直不可思议。
「…不,完全没有。」
「喂!霍尔玛,你有什么计划了吗?」
xx
“;问题描述:如上文,是一段后端返回的html;由变量content接收,现在的需求是要去除这段html p标签内容的首尾空格,不能影响除首尾外的空格;由于是uniapp,有h5、安卓、iOS三个端,所以不能使用document;如何解决
let content = `
<p> 「喂!霍尔玛,你有什么计划了吗?」</p>
<p> 明明是在小跑,却几乎跟不上比自己 腿 短、且还是行走状态的 少 女,简直不可思议。</p>
<p>  「…………不,完全没有。」</p>
<p style="color:red;">「喂!霍尔玛,你有什么计划了吗?」 </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(/((^ | )|( | $))/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)
尝试了一下这样应该可行