小程序展示富文本

2019-08-06 15:30:08

直接用rich-text就可以,然后稍作css修饰

一开始,看文档以为所有的原生html都要转换成nodes的数组,然后循环展示。我还特地研究了怎么从服务器进行转成nodes这样的结构,所以就用到了Html2Wxml2J,研究了好大半天呢,整体不错,效果也很理想,配合小程序前端模板,能在他生成的标签或者class上面修改样式,来符合手机端的实用。

既然rich-text能直接渲染原生html,我看应该是其内部进行了nodes处理,既然能支持原生,我觉得没有必要用html2wxml2j,除非有特别的需求,我们再可以定制。

然而rich-text有个问题,它不能够给内联img设置宽度100%,这样图片就容易溢出屏幕。我们只能在后台返回富文本的时候对图片的img标签进行格式化。或者前端进行格式化也行,我赞成使用后端,因为很多种情况我们不一定都能想得到。


代码参考如下,但也要根据具体情况进行分析。

    前端代码:

<rich-text nodes="{{detail_tb}}">
</rich-text>
这个是wxml里<rich-text>富文本



这个写在js里:
var _that =this;

_that.setData({
detail_tb: res.data.replace(/\<img/gi, '<img style="max-width:100%;height:auto" '),
})
重点是横线的部分res.data是我从后台获取放在rich-text里的数据


后端正则如下


Java正则表达式 (<img.*?)style=\".*?\"  替换成 $1

其中.*表示0个或0以上多个任意字符

.*?表示0个或0以上多个任意字符的非贪婪匹配,就是假如一个句子中有多个style,它匹配距离最近的那个style,同理后面的.*?匹配距离最近的双引号

$1表示反向引用,它代表的是正则表达式中的第一个小括号所括起来的分组的内容,如果有两个小括号括起来的内容,则分别用$1,$2表示它们(在替换后的字符串中)

完整的Java程序如下

public class CC {
 public static void main(String[] args) {
  String s="<img src=\"file/img/2016/12-28/1234-25521482893088459.jpg\"  title=\"1234.jpg\" alt=\"\" width=\"396\" height=\"271\" style=\"width: 396px; height: 271px;\"/>";
  System.out.println(s.replaceAll("(<img.*?)style=\".*?\"", "$1"));
 }
}


1
2
3
4
5
6
public class CC {
 public static void main(String[] args) {
  String s="<img src=\"file/img/2016/12-28/1234-25521482893088459.jpg\"  title=\"1234.jpg\" alt=\"\" width=\"396\" height=\"271\" style=\"width: 396px; height: 271px;\"/>";
  System.out.println(s.replaceAll("(<img.*?)style=\".*?\"""$1"));
 }
}

运行结果

<img src="file/img/2016/12-28/1234-25521482893088459.jpg"  title="1234.jpg" alt="" width="396" height="271" />


  • 2019-02-12 16:36:23

    图片工具GraphicsMagick的安装配置与基本使用

    GraphicsMagick是一个短小精悍的的图片处理工具和库集合。对于Java开发者来说,常用的图片处理工具有3个,JDK自带的图片处理库,ImageMagick,GraphicsMagick。JDK自带的图片处理库,虽稳定简单,性能却比较差;ImageMagick是目前最流行的图片处理工具,它的功能非常丰富;GraphicsMagick的功能略逊于ImageMagick,但是它的效率更强悍,但大多数情况下,GM的功能已经足够使用了。

  • 2019-02-15 10:35:31

    使用ffmpeg转码m3u8并播放

    m3u8是苹果公司开发的一项新型播放格式,这种播放格式支持目前市面的windows、androis、ios设备主流的浏览器,同样的视频文件既可以在flash环境播放,又能在无flash的html5环境播放,它的优势还不止于此,它可以实现多种码率在不同网速下的自动切换,网速好自动切换高清晰度视频,网速慢自动播放低清晰度文件,还可以实现流加密(视频文件本身加密)、分段下载播放、任意时间点拖拽播放、随机视频文件广告插入等等优势,所以公司打算是用m3u8格式作为视频格式。 --------------------- 作者:悠闲咖啡007 来源:CSDN 原文:https://blog.csdn.net/psh18513234633/article/details/79312607 版权声明:本文为博主原创文章,转载请附上博文链接!

  • 2019-02-15 10:36:45

    将MP4转成m3u8

    网上很多垃圾文章推荐segmenter工具,但用的时候,3.5G的ts文件丢了一半的数据,于是想到了ffmpeg转。