微信小程序rich-text 文本首行缩进和图片居中

微信小程序开发使用rich-text组件渲染html格式的代码,常常因为不能自定义css导致文本不能缩进,以及图片不能居中等问题,这里可以考虑使用js的replace方法,替换字符串,然后在渲染的同时加载行内样式。

let content = `<div > 
<p><strong>宅是一种信仰。</strong><br></p>
<p><br></p>
<p>Wi-Fi + 床 = 低配宅。</p>
<p><br></p>
<p>Wi-Fi + 床 + 零食 + 网综= 进阶版肥宅。</p>
<p><br></p>
<p>Wi-Fi + 床 + 零食 + 网综 + 外卖 + 撸猫 = 人间天堂金不换宅。</p>
<p><br></p>
<p>移动互联网迅猛发展的当下,“人间天堂金不换”版宅可以说是当下一些“9000岁”<span class="text-remarks" label="备注">(即“90后”和“00后”)</span>年轻人的生活常态了。</p>

</div>`;

              let article = content.replace(/(\<img|\<p)/gi, function ($0, $1) {
              return {
                "<img": '<img  ',
                "<p": '<p  ',
                "<article":"<div",
                "</article": "</div",
                "<header": "<div",
                "</header": "</div"
              }[$1];
            });
            console.log(article)
replace里的g表示全局替换,而每个关键词前面的\则为转义字符,在针对html类的标签替换的时候,是必不可少的。这个方法还支持拓展关键词增加如果有需求可以自行添加,需要自定义的css样式则可以在所替换的字符串关键词里定义。