一.字符串替换
单独替换:
//原始字符串
let
str1 =
"LCLiOS"
//替换后的字符串
let
str2 = str1.replacingOccurrences(of:
"iOS"
, with:
"嘿哈"
)
正则表达式替换:
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: " ", 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")
}