1. 判斷字符串是否是3-15位數字或者郵箱
extension String {
// 是否是3-15位數字
func validateMobileNumber() -> Bool {
let regex = "^\\d{3,15}$"
return NSPredicate(format: "SELF MATCHES %@", regex).evaluate(with: self)
}
// 是否是郵箱
func validateEmail() -> Bool {
let emailRegex = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,64}"
return NSPredicate(format: "SELF MATCHES %@", emailRegex).evaluate(with: self)
}
}
2. 判斷字符串是否包含某個字符串
extension String {
/// 判斷是否含有某個字符串
func contains(find: String) -> Bool {
return self.range(of: find) != nil
}
/// 判斷是否含有某個字符串 忽略大小寫
func containsIgnoringCase(find: String) -> Bool {
return self.range(of: find, options: .caseInsensitive) != nil
}
}
3. 計算字符串寬度或者高度
// 計算字符串尺寸大小
extension String {
/// 根據字符串計算高度尺寸,width 默認是最大數
func size(font: UIFont, width: CGFloat = CGFloat.greatestFiniteMagnitude, paragraphStyle: NSParagraphStyle = NSParagraphStyle.default) -> CGSize {
var attributes: [NSAttributedStringKey: Any] = [NSAttributedStringKey.font : font]
attributes[NSAttributedStringKey.paragraphStyle] = paragraphStyle
let rect = self.boundingRect(with: CGSize(width: width, height: CGFloat.greatestFiniteMagnitude),
options: NSStringDrawingOptions.usesLineFragmentOrigin,
attributes: attributes,
context: nil)
return rect.size
}
/// 根據字符串計算寬度尺寸
func getSizeWithHeight(font: UIFont, height: CGFloat = CGFloat.greatestFiniteMagnitude, paragraphStyle: NSParagraphStyle = NSParagraphStyle.default) -> CGSize {
var attributes: [NSAttributedStringKey: Any] = [NSAttributedStringKey.font : font]
attributes[NSAttributedStringKey.paragraphStyle] = paragraphStyle
let rect = self.boundingRect(with: CGSize(width: CGFloat.greatestFiniteMagnitude, height: height),
options: NSStringDrawingOptions.usesLineFragmentOrigin,
attributes: attributes,
context: nil)
return rect.size
}
}
4. 判斷字符串是否有值
extension String {
/**
true if self contains characters.
*/
var isNotEmpty: Bool {
return !isEmpty
}
}
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。