js 删除字符串标签的所有属性样式并且删除font标签span标签但是保留img标签的src并且把img标签src里面链接转换base64格式
你可以使用正则表达式和JavaScript来删除字符串标签的所有属性样式,并删除font标签和span标签。然后,你可以使用JavaScript将img标签的src链接转换为base64格式。
下面是一个示例代码:
// 删除字符串标签的所有属性样式
function removeAttributesStyles(str) {
return str.replace(/<[^>]+>/g, function(match) {
return match.replace(/(\S+=['"][^'"]+['"]\s*|\S+=\S+\s*|\s*style\s*=['"][^'"]+['"]\s*|\s*style\s*=\S+\s*|class=['"][^'"]+['"]\s*|\s*class=\S+\s*)/ig, '');
});
}
// 删除font标签和span标签
function removeFontAndSpanTags(str) {
return str.replace(/<\/?(font|span)[^>]*>/ig, '');
}
// 将img标签的src链接转换为base64格式
function convertImgSrcToBase64(str) {
return str.replace(/<img[^>]+src=['"]([^'"]+)['"][^>]*>/ig, function(match, src) {
var xhr = new XMLHttpRequest();
xhr.open('GET', src, false);
xhr.send();
if (xhr.status === 200) {
var base64 = btoa(xhr.responseText);
return '<img src="data:image;base64,' + base64 + '">';
}
return match;
});
}
// 示例用法
var htmlString = '<div style="color: red;"><font size="5">Hello</font> <span style="font-weight: bold;">World</span> <img src="https://example.com/image.jpg"></div>';
var removedAttributesStyles = removeAttributesStyles(htmlString);
var removedFontAndSpanTags = removeFontAndSpanTags(removedAttributesStyles);
var convertedImgSrcToBase64 = convertImgSrcToBase64(removedFontAndSpanTags);
console.log(convertedImgSrcToBase64);
在上面的示例中,我们首先使用removeAttributesStyles函数删除字符串中标签的所有属性样式。然后,使用removeFontAndSpanTags函数删除font标签和span标签。最后,使用convertImgSrcToBase64函数将img标签的src链接转换为base64格式。
请注意,上面的代码中使用了XMLHttpRequest来获取图片的内容并转换为base64格式。这可能会导致跨域问题。如果你需要处理跨域图片,你可能需要使用其他方法来获取图片内容并转换为base64格式
原文地址: https://www.cveoy.top/t/topic/ihhz 著作权归作者所有。请勿转载和采集!