iOS开发——Swift字符串替换 + HTML标签正则过滤 + 主线程非阻断延时

 

 

一.字符串替换

   单独替换:  

 

//原始字符串
let  str1 =  "LCLiOS"
//替换后的字符串
let  str2 = str1.replacingOccurrences(of:  "iOS" , with:  "嘿哈" )
 
替换后的结果:  LCL嘿哈
 

 

 

 

 

    正则表达式替换:

    1,先做个String拓展

     

extension  String  {
     // 1 返回字数
     var  count:  Int  {
         let  string_NS =  self  as  NSString
         return  string_NS.length
     }
     
     //使用正则表达式替换
     func  pregReplace(pattern:  String , with:  String ,
                      options:  NSRegularExpression . Options  = []) ->  String  {
         let  regex = try!  NSRegularExpression (pattern: pattern, options: options)
         return  regex.stringByReplacingMatches( in self , options: [],
                                               range:  NSMakeRange (0,  self .count),
                                               withTemplate: with)
     }
}

 

     

        2,正则表达式替换方法

       

  

//原始字符串
let  str1 =  "欢迎来到aa"
//替换后的字符串
let  str2 = str1.pregReplace(pattern:  "[a-zA-Z]" , with:  "_" )
 
将文本的字母替换成下划线,结果:
欢迎来到_ _ _ _

 

      

 

二.HTML标签正则过滤

      

    利用上面的String扩展类,去掉文本中HTML标签

 

 

  // 正则表达式替换字符串中html标签

 self.htmlString =  self.htmlString.pregReplace(pattern: "<[^>]*>", with: "")  

  // Stringl类单独字符串替换空格标签

 self.htmlString =  self.htmlString.replacingOccurrences(of: "&nbsp;", with: "")

 

 

 

 

三.主线程非阻断延时

     

     简单的一行代码:

 

 DispatchQueue.main.asyncAfter(deadline: .now() + TimeInterval(0.5)) {

            

            

            // 延时0.5秒后执行的动画

            let animation = CABasicAnimation.init(keyPath: "transform.scale")

            animation.duration      = 0.2

            animation.repeatCount   = 0

            animation.autoreverses  = false

            

            animation.fromValue = NSNumber.init(value: 0.1)

            animation.toValue   = NSNumber.init(value: 1)

            

            self.openBtn.layer.add(animation, forKey: "scale-layer")

            self.loginBtn.layer.add(animation, forKey: "scale-layer")

            

            

        }

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值