JavaScript 富文本内容Img标签Src属性相对路径改为绝对路径,绝对路径不做处理。
直接上代码
var a = '<P><img src="http://bbs.cn.yimg.com/user_img/200701/31/jisuanji986_117025184198149.jpg"><img src="https://bbs.cn.yimg.com/user_img/200701/31/jisuanji986_117025184198149.jpg"><img src="/200701/31/jisuanji986_117025184198149.jpg"><img src="/jisuanji986_117025184198149.jpg"></P>';
// a 为富文本的字符串内容,为了测试,只写了img标签
var b = /<img [^>]*src=['"]([^'"]+)[^>]*>/g;// img 标签取src里面内容的正则
var s = a.match(b);// 取到所有img标签 放到数组 s里面
for (var i = 0; i < s.length; i++) {
var srcImg = s[i].replace(b, '$1');//取src面的内容
if (srcImg.slice(0, 4) == 'http' || srcImg.slice(0, 5) == 'https') {
//若src前4位置或者前5位是http、https则不做任何修改
console.log('不做任何修改');
} else {
//修改富文本字符串内容 img标签src 相对路径改为绝对路径
a = a.replace(new RegExp(srcImg, 'g'), 'https://www.此处为自定义项.com' + srcImg);
}
}
console.log(a);//打印查看是否修改成功。
写记录博客原由,因为今天公司提出,富文本内容要判断img标签的src是否是绝对路径,如果是全路径则不处理,若是相对路径需要改为绝对路径,并且域名是要写成全局,上度娘查了半天都是php和java做的数据处理,作为前端的我看了一脸懵,借鉴了几篇文章,慢慢琢磨出来了,并记录一下。