Swift:String+Extension

1. 判斷字符串是否是3-15位數(shù)字或者郵箱
extension String {
    // 是否是3-15位數(shù)字
    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 {
    /// 根據(jù)字符串計算高度尺寸,width 默認是最大數(shù)
    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
    }

    /// 根據(jù)字符串計算寬度尺寸
    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
   }
}
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容