不少項目都須要到富文原本添加內容,就比如新聞啊,旅遊景點之類的,都須要使用富文本去添加數據,然而怎麼我這邊就發現了兩個問題html
1)怎樣將富文本的圖片的 src 獲取出來?前端
2)後臺上傳的時候用的是相對路徑,前端顯示須要的是最對路徑maven
我下面就記錄一下解決這兩個問題的方法工具
1):怎麼將富文本的圖片的 src 獲取出來?很簡單,就一個工具便可spa
public static List<String> getImgStr(String htmlStr) { List<String> list = new ArrayList<>(); String img = ""; Pattern p_image; Matcher m_image; // String regEx_img = "<img.*src=(.*?)[^>]*?>"; //圖片連接地址 String regEx_img = "<img.*src\\s*=\\s*(.*?)[^>]*?>"; p_image = Pattern.compile(regEx_img, Pattern.CASE_INSENSITIVE); m_image = p_image.matcher(htmlStr); while (m_image.find()) { // 獲得<img />數據 img = m_image.group(); // 匹配<img>中的src數據 Matcher m = Pattern.compile("src\\s*=\\s*\"?(.*?)(\"|>|\\s+)").matcher(img); while (m.find()) { list.add(m.group(1)); } } return list; }
便可獲取到如下結果3d
2)後臺上傳的時候用的是相對路徑,前端顯示須要的是最對路徑,下面來看看咱們怎麼動態去修改富文本的 img 標籤的 src ,也很簡單,也是一個工具便可code
這裏須要一個叫作 jsoup 的 jar, maven 項目的話,直接引進來就好了htm
<dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.11.2</version> </dependency>
下面是工具類blog
public static String documentBody (String newsBody) { Element doc = Jsoup.parseBodyFragment(newsBody).body(); Elements pngs = doc.select("img[src]"); String httpHost = "http://192.168.0.100"; for (Element element : pngs) { String imgUrl = element.attr("src"); if (imgUrl.trim().startsWith("/")) { // 會去匹配咱們富文本的圖片的 src 的相對路徑的首個字符,請注意一下 imgUrl =httpHost + imgUrl; element.attr("src", imgUrl); } } return newsBody = doc.toString(); }
便可獲取到如下結果圖片
好了,以上就是這兩個問題的解決方式
不喜勿噴!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!