sxdpanda

下面的这个方法是在百度上找的,但是老是报错,一直没找到原因,索性自己就挨个检查了下,发现在过滤之前需要对传过来的值进行检测,是字符串才能让这个方法执行

filters: {
    formatRichText(html) { //控制小程序中图片大小
        let newContent = \'\'
            newContent = html.replace(/<img[^>]*>/gi,
            function(match) {
                match = match.replace(/style="[^"]+"/gi, \'\').replace(/style=\'[^\']+\'/gi, \'\');
                match = match.replace(/width="[^"]+"/gi, \'\').replace(/width=\'[^\']+\'/gi, \'\');
                match = match.replace(/height="[^"]+"/gi, \'\').replace(/height=\'[^\']+\'/gi, \'\');
                return match;
            });
            newContent = newContent.replace(/style="[^"]+"/gi,
            function(match) {
                match = match.replace(/width:[^;]+;/gi, \'max-width:100%;\').replace(/width:[^;]+;/gi, \'max-width:100%;\');
                return match;
            });
            newContent = newContent.replace(/<br[^>]*\/>/gi, \'\');
            newContent = newContent.replace(/\<img/gi, \'<img style="max-width:100%;height:auto;display:inline-block;margin:10rpx auto;"\');
            return newContent;

        

    }
},

以下为完整方法

filters: {
    formatRichText(html) { //控制小程序中图片大小
        let newContent = \'\'
        if (typeof(html) == \'string\') { //检测值为字符串才能进行replace操作
            newContent = html.replace(/<img[^>]*>/gi,
            function(match) {
                match = match.replace(/style="[^"]+"/gi, \'\').replace(/style=\'[^\']+\'/gi, \'\');
                match = match.replace(/width="[^"]+"/gi, \'\').replace(/width=\'[^\']+\'/gi, \'\');
                match = match.replace(/height="[^"]+"/gi, \'\').replace(/height=\'[^\']+\'/gi, \'\');
                return match;
            });
            newContent = newContent.replace(/style="[^"]+"/gi,
            function(match) {
                match = match.replace(/width:[^;]+;/gi, \'max-width:100%;\').replace(/width:[^;]+;/gi, \'max-width:100%;\');
                return match;
            });
            newContent = newContent.replace(/<br[^>]*\/>/gi, \'\');
            newContent = newContent.replace(/\<img/gi, \'<img style="max-width:100%;height:auto;display:inline-block;margin:10rpx auto;"\');
            return newContent;

        }

    }
},

 

分类:

技术点:

相关文章: