对于html源码的处理,我是写在一个NSString的类别中。
过滤html源码中的图片
- (NSArray *)htmlStringFilterImages
{
NSMutableArray *resultArray = [NSMutableArray array];
if (self && 0 < self.length)
{
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"|>|>)" options:NSRegularExpressionAllowCommentsAndWhitespace error:nil];
NSArray *result = [regex matchesInString:self options:NSMatchingReportCompletion range:NSMakeRange(0, self.length)];
for (NSTextCheckingResult *item in result)
{
NSRange range = [item rangeAtIndex:0];
NSString *imgHtml = [self substringWithRange:range];
NSArray *tmpArray = nil;
if ([imgHtml rangeOfString:@"src=\""].location != NSNotFound)
{
tmpArray = [imgHtml componentsSeparatedByString:@"src=\""];
}
else if ([imgHtml rangeOfString:@"src="].location != NSNotFound)
{
tmpArray = [imgHtml componentsSeparatedByString:@"src="];
}
for (NSString *image in tmpArray)
{
if ([image hasPrefix:@"https://"] || [image hasPrefix:@"http://"])
{
NSRange range = [image rangeOfString:@".jpg"];
if (range.location == NSNotFound)
{
range = [image rangeOfString:@".png"];
}
if (range.location != NSNotFound)
{
NSString *url = [image substringToIndex:(range.location + range.length)];
[resultArray addObject:url];
}
}
}
}
}
return resultArray;
}
html源码中的图片大小处理(JS)
/// 修改html中图片大小的js代码
- (NSString *)htmlStringJSImageSizeWidth:(float)width
{
return [NSString stringWithFormat:@"var script = document.createElement('script');script.type = 'text/javascript';script.text = \"function ResizeImages() { var imgs = document.getElementsByTagName('img');for (var i = 0; i < imgs.length; i ++) {var img = imgs[i];img.style.width = %@ ;img.style.height = null;}}\";document.getElementsByTagName('head')[0].appendChild(script);", @(width)];
}
html源码中图片大小自适应屏幕大小(非JS)
- (NSString *)htmlStringImageAutoSize
{
NSString *content = self;
if (content && 0 < content.length)
{
content = [content stringByReplacingOccurrencesOfString:@"" withString:@""];
content = [content stringByReplacingOccurrencesOfString:@"" withString:@""];
content = [content stringByReplacingOccurrencesOfString:@"
" withString:@""];content = [content stringByReplacingOccurrencesOfString:@"" withString:@""];
content = [content stringByReplacingOccurrencesOfString:@"