Swift中常用的正则表达式

Swift中常用的正则表达式

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

    }
  • 发表于 2017-11-24 13:28
  • 阅读 ( 2325 )
  • 分类:ios

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
不写代码的码农
Alan

iOS开发

14 篇文章

作家榜 »

  1. 威猛的小站长 124 文章
  2. Jonny 65 文章
  3. 江南烟雨 36 文章
  4. - Nightmare 33 文章
  5. doublechina 31 文章
  6. HJ社区-肖峰 29 文章
  7. 伪摄影 22 文章
  8. Alan 14 文章