🎈边走、边悟🎈迟早会好 |
小程序需要使用绝对路径 因为小程序没有前缀网址,浏览器有前缀网址
示例:
<img src=\"/nongfu/profile/upload/2025/06/19/20250619103511A012.png\">
处理代码:
// 假设图片服务器前缀为http://your-domain.com
String urlPrefix = "http://your-domain.com";
/**
* 为富文本中的相对路径图片添加URL前缀
* @param richText 原始富文本内容
* @param urlPrefix 图片服务器前缀(例如:http://example.com)
* @return 处理后的富文本
*/
public static String addImageUrlPrefix(String richText, String urlPrefix) {
if (richText == null || richText.isEmpty() || urlPrefix == null) {
return richText;
}
// 正则表达式匹配<img>标签中的src属性(支持单引号、双引号和自闭合标签)
String imgPattern = "<img\\s+[^>]*src\\s*=\\s*['\"]([^'\"]+)['\"][^>]*>";
Pattern pattern = Pattern.compile(imgPattern, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(richText);
StringBuffer result = new StringBuffer();
while (matcher.find()) {
String src = matcher.group(1);
// 仅处理以'/'开头且非http/https的相对路径
if (src.startsWith("/") &&
!src.startsWith("http://") &&
!src.startsWith("https://")) {
String newSrc = urlPrefix + src;
// 替换src属性值
String replacement = matcher.group().replace(src, newSrc);
matcher.appendReplacement(result, Matcher.quoteReplacement(replacement));
} else {
// 非相对路径直接保留
matcher.appendReplacement(result, Matcher.quoteReplacement(matcher.group()));
}
}
matcher.appendTail(result);
return result.toString();
}
输出示例:
输入:
<img src="/nongfu/profile/upload/2025/06/19/20250619103443A010.png">
输出:
<img src="https://your-server.com/nongfu/profile/upload/2025/06/19/20250619103443A010.png">
这个方法可以处理你提供的完整富文本内容,包括多个图片标签的情况。只需传入正确的图片服务器前缀,就能自动为所有相对路径的图片添加完整 URL。
🌟感谢支持 听忆.-CSDN博客
🎈众口难调🎈从心就好 |