oc 空格 换行符 转换成 html,iOS开发 HTML去除标签&去除空格、换行符、制表符

去除字符串中的指定字符

Swift版本:

/// 去除字符串中的指定字符

///

/// - Parameters:

/// - str: 字符串

/// - separatedBy: 要去除的字符

/// - Returns: 去除指定字符后的字符串

func JJComponents(str:String, separatedBy:String)->String {

let arr = str.components(separatedBy: separatedBy)

let temp = arr.reduce("") { (result, element) -> String in

return result + element

}

return temp

}

OC版本:

/**

去除字符串中的指定字符

@param str 字符串

@param separatedBy 要去除的字符

@return 去除指定字符后的字符串

*/

- (NSString *)JJComponents:(NSString *)str separatedBy:(NSString *)separatedBy {

NSArray * arr = [str componentsSeparatedByString:separatedBy];

if (arr.count>0) {

NSString *result = arr.firstObject;

for (int i=1; i

NSString *temp = arr[i];

result = [NSString stringWithFormat:@"%@%@",result,temp];

}

return result;

}else {

return @"";

}

}

将HTML字符串转化为去掉标签的字符串

方法一:一般不要使用,此方法很消耗性能,很卡顿,即使放到子线程里面进行转化也很卡顿的!!!

/// 将HTML字符串转化为去掉标签的字符串(一般不要使用,此方法很消耗性能,很卡顿)

///

/// - Parameter htmlStr: HTML字符串

/// - Returns: 去掉标签后的字符串

func JJHTMLTransformToString(htmlStr:String)->String {

if let data = htmlStr.data(using: String.Encoding.unicode) {

do{

let attStr = try NSAttributedString.init(data: data, options:[NSAttributedString.DocumentReadingOptionKey.documentType : NSAttributedString.DocumentType.html], documentAttributes: nil)

return attStr.string

}catch {

return ""

}

}

return ""

}

方法二:【推荐使用此方法】

Swift版本:

/// 将字符串中的标签去除

///

/// - Parameter html: 带有标签的HTML字符串

/// - Returns: 返回不带标签的字符串

func JJFilterHTML(html:String)->String {

let scanner = Scanner(string: html)

var text:NSString?

var result:String = html

while scanner.isAtEnd == false {

scanner.scanUpTo("

scanner.scanUpTo(">", into: &text)

result = result.replacingOccurrences(of: "\(text ?? "")>", with: "")

}

return result

}

OC版本:

/**

将字符串中的标签去除

@param html 带有标签的HTML字符串

@return 返回不带标签的字符串

*/

-(NSString *)JJFilterHTML:(NSString *)html

{

NSScanner * scanner = [NSScanner scannerWithString:html];

NSString * text = nil;

while([scanner isAtEnd]==NO)

{

[scanner scanUpToString:@"

[scanner scanUpToString:@">" intoString:&text];

html = [html stringByReplacingOccurrencesOfString:[NSString stringWithFormat:@"%@>",text] withString:@""];

}

return html;

}

使用方法二测试如下:

let html = "

劳动是人类创造物质或精神财富的活动,有体力的,也有脑力的。我们自己是劳动者,也是别人劳动的见证者。劳动存在于现在,也存在于过去和未来。劳动的人有不同,劳动的对象有不同,劳动的方式有不同,劳动的环境有不同……于是,劳动的滋味也有不同。劳动很重要,品味劳动的滋味也很重要。你对劳动有怎样的体验或感悟?请以“品味劳动”为题写一篇不少于800字的作文,除诗歌外文体不限。

let htmlStr = JJFilterHTML(html:html) // 去掉HTML标签

let temp1 = JJComponents(str: htmlStr, separatedBy: "\n") // 去掉换行符

let temp2 = JJComponents(str: temp1, separatedBy: "\t") // 去掉\t

let result = temp2.replacingOccurrences(of: " ", with: "") // 去掉空格

得到result的值为:

"劳动是人类创造物质或精神财富的活动,有体力的,也有脑力的。我们自己是劳动者,也是别人劳动的见证者。劳动存在于现在,也存在于过去和未来。劳动的人有不同,劳动的对象有不同,劳动的方式有不同,劳动的环境有不同……于是,劳动的滋味也有不同。劳动很重要,品味劳动的滋味也很重要。你对劳动有怎样的体验或感悟?请以“品味劳动”为题写一篇不少于800字的作文,除诗歌外文体不限。"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值