美文网首页iOS精華
Swift中常用的正则表达式

Swift中常用的正则表达式

作者: 星星编程 | 来源:发表于2017-01-02 17:49 被阅读174次

    1、手机号码验证

    移动号正则表达式:

      let regex = "^((13[4-9])|(147)|(15[0-2,7-9])|(178)|(18[2-4,7-8]))\\d{8}|(1705)\\d{7}$"
    

    联通号正则表达式:

     let regex ="^((13[0-2])|(145)|(15[5-6])|(176)|(18[5,6]))\\d{8}|(1709)\\d{7}$"
    

    电信号正则表达式:

     let regex ="^((133)|(153)|(177)|(18[0,1,9]))\\d{8}$"
    

    移动、联通、电信手机号通用表达式:

     static func validatedPhone(phoneStr:String) -> Bool {
    
            let phone = phoneStr.trimmingCharacters(in: CharacterSet.whitespaces)
            let regex =  "^((13[0-9])|(14[5,7])|(15[^4,\\D]) |(17[0,0-9])|(18[0,0-9]))\\d{8}$"
            let predicate = NSPredicate(format:"SELF MATCHES %@",regex)
            let result = predicate.evaluate(with: phone)
            return result
          
        }
    
    

    2、邮箱验证

    
     static func validatedEmail(emailStr:String) -> Bool {
    
            let email = emailStr.trimmingCharacters(in: CharacterSet.whitespaces)
            let regex =  "^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$"
            let predicate = NSPredicate(format:"SELF MATCHES %@",regex)
            let result = predicate.evaluate(with: email)
            return result
          
        }
    

    3、身份证号验证

     static func validatedIdentityCard(identityCardStr:String) -> Bool {
    
            let identityCard =identityCardStr.trimmingCharacters(in: CharacterSet.whitespaces)
            let regex =  "^(\\d{14}|\\d{17})(\\d|[xX])$"
            let predicate = NSPredicate(format:"SELF MATCHES %@",regex)
            let result = predicate.evaluate(with: identityCard)
            return result
          
        }
    

    4、用户昵称验证

    用户昵称验证(允许使用4-8个汉字)

     static func validatedNickName(nickNameStr:String) -> Bool {
    
            let nickName = nickNameStr.trimmingCharacters(in: CharacterSet.whitespaces)
            let regex =  "^[\u4e00-\u9fa5]{4,8}$"
            let predicate = NSPredicate(format:"SELF MATCHES %@",regex)
            let result = predicate.evaluate(with: nickName)
            return result
          
        }
    

    5、用户名验证

    用户名验证(允许使用小写字母、数字、下滑线、横杠,一共3~16个字符)

     static func validatedUserName(userNameStr:String) -> Bool {
    
            let userName = userNameStr.trimmingCharacters(in: CharacterSet.whitespaces)
            let regex =  "^[a-z0-9_-]{3,16}$"
            let predicate = NSPredicate(format:"SELF MATCHES %@",regex)
            let result = predicate.evaluate(with: userName)
            return result
          
        }
    

    6、密码强度验证

    密码的强度必须是包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间。

     static func validatedPassword(passwordStr:String) -> Bool {
    
            let password = passwordStr.trimmingCharacters(in: CharacterSet.whitespaces)
            let regex =  "^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$"
            let predicate = NSPredicate(format:"SELF MATCHES %@",regex)
            let result = predicate.evaluate(with: password)
            return result
          
        }
    

    7、URL验证

     static func validatedURL(urlStr:String) -> Bool {
    
            let url = urlStr.trimmingCharacters(in: CharacterSet.whitespaces)
            let regex =  "^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$"
            let predicate = NSPredicate(format:"SELF MATCHES %@",regex)
            let result = predicate.evaluate(with: url)
            return result
          
        }
    

    8、IP-v4地址验证

     static func validatedIPv4(ipv4Str:String) -> Bool {
    
            let ipv4 = ipv4Str.trimmingCharacters(in: CharacterSet.whitespaces)
            let regex =  "^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$"
            let predicate = NSPredicate(format:"SELF MATCHES %@",regex)
            let result = predicate.evaluate(with: ipv4)
            return result
          
        }
    

    9、IP-v6地址验证

     static func validatedIPv6(ipv4Str:String) -> Bool {
    
            let ipv6 = ipv6Str.trimmingCharacters(in: CharacterSet.whitespaces)
            let regex =  "(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))"
            let predicate = NSPredicate(format:"SELF MATCHES %@",regex)
            let result = predicate.evaluate(with: ipv6)
            return result
          
        }
    

    10、HTML标签验证

     static func validatedHtml(htmlStr:String) -> Bool {
    
            let html = htmlStr.trimmingCharacters(in: CharacterSet.whitespaces)
            let regex =  "<\\/?\\w+((\\s+\\w+(\\s*=\\s*(?:".*?"|'.*?'|[\\^'">\\s]+))?)+\\s*|\\s*)\\/?>"
            let predicate = NSPredicate(format:"SELF MATCHES %@",regex)
            let result = predicate.evaluate(with: html)
            return result
          
        }
    

    11、车牌号验证

     static func validatedCarNo(carNoStr:String) -> Bool {
    
            let carNo = carNoStr.trimmingCharacters(in: CharacterSet.whitespaces)
            let regex =  "^[\u4e00-\u9fa5]{1}[a-zA-Z]{1}[a-zA-Z_0-9]{4}[a-zA-Z_0-9_\u4e00-\u9fa5]$"
            let predicate = NSPredicate(format:"SELF MATCHES %@",regex)
            let result = predicate.evaluate(with: carNo)
            return result
          
        }
    

    12、车型验证

     static func validatedCarType(carTypeStr:String) -> Bool {
    
            let carType = carTypeStr.trimmingCharacters(in: CharacterSet.whitespaces)
            let regex =  "^[\u4e00-\u9fa5]{1}[a-zA-Z]{1}[a-zA-Z_0-9]{4}[a-zA-Z_0-9_\u4e00-\u9fa5]$"
            let predicate = NSPredicate(format:"SELF MATCHES %@",regex)
            let result = predicate.evaluate(with: carType)
            return result
          
        }
    

    相关文章

      网友评论

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

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