美文网首页SwiftOC-开发案例收集Swift
常用正则表达式 Swift 4.2

常用正则表达式 Swift 4.2

作者: 小奉不在乎 | 来源:发表于2018-12-13 15:27 被阅读3次

    整理了一些常用的Swift正则表达式,包括最新的手机号验证,希望对小伙伴儿们有帮助。

    extension String {
        /// 正则匹配手机号
        var isMobile: Bool {
            /**
             * 手机号码
             * 移动:134 135 136 137 138 139 147 148 150 151 152 157 158 159  165 172 178 182 183 184 187 188 198
             * 联通:130 131 132 145 146 155 156 166 171 175 176 185 186
             * 电信:133 149 153 173 174 177 180 181 189 199
             * 虚拟:170
             */
            return isMatch("^(1[3-9])\\d{9}$")
        }
        
        /// 正则匹配用户身份证号15或18位
        var isUserIdCard: Bool {
            return isMatch("(^[0-9]{15}$)|([0-9]{17}([0-9]|X)$)")
        }
        
        /// 正则匹配用户密码6-18位数字和字母组合
        var isPassword: Bool {
            return isMatch("^(?![0-9]+$)(?![a-zA-Z]+$)[a-zA-Z0-9]{6,18}")
        }
        
        /// 正则匹配URL
        var isURL: Bool {
            return isMatch("^[0-9A-Za-z]{1,50}")
        }
        
        /// 正则匹配用户姓名,20位的中文或英文
       var isUserName: Bool {
            return isMatch("^[a-zA-Z\\u4E00-\\u9FA5]{1,20}")
        }
        
        /// 正则匹配用户email
        var isEmail: Bool {
            return isMatch("[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}")
        }
        
        /// 判断是否都是数字
        var isNumber: Bool {
            return isMatch("^[0-9]*$")
        }
        
        /// 只能输入由26个英文字母组成的字符串
        var isLetter: Bool {
            return isMatch("^[A-Za-z]+$")
        }
        
        private func isMatch(_ pred: String ) -> Bool {
            let pred = NSPredicate(format: "SELF MATCHES %@", pred)
            let isMatch: Bool = pred.evaluate(with: self)
            return isMatch
        }
    }
    
    

    相关文章

      网友评论

        本文标题:常用正则表达式 Swift 4.2

        本文链接:https://www.haomeiwen.com/subject/afhbhqtx.html