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(
in
:
self
,
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: "<[^>]*>"
// Stringl類單獨字串替換空格標籤
self.htmlString =self.htmlString.replacingOccurrences(of: " ", 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")
}