1. 程式人生 > >iOS開發——Swift字串替換 + HTML標籤正則過濾 + 主執行緒非阻斷延時

iOS開發——Swift字串替換 + HTML標籤正則過濾 + 主執行緒非阻斷延時

一.字串替換

單獨替換:  

//原始字串 let str1 = "LCL中金公司iOS" //替換後的字串 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(inself, options: [], range: NSMakeRange(0, self.count), withTemplate: with)
} }

        2,正則表示式替換方法

//原始字串 let str1 = "歡迎來到中金公司cicc" //替換後的字串 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")

}