iOS

来源:互联网 发布:淘宝店铺注册单危险不 编辑:程序博客网 时间:2024/06/11 17:23
  • /** 
  •  * 验证手机号是否正确  
  •  * @param unknown_type $mobile 
  •  */  
  •  OC:

    - (BOOL)isMobileNumber:(NSString *)mobileNum

    {

        /**

         * 手机号码

         * 移动:134[0-8],135,136,137,138,139,150,151,157,158,159,182,187,188

         * 联通:130,131,132,152,155,156,185,186

         * 电信:133,1349,153,180,189

         */

        NSString * MOBILE = @"^1(3[0-9]|5[0-35-9]|8[025-9])\\d{8}$";

        /**

         * 中国移动:China Mobile

         * 134[0-8],135,136,137,138,139,150,151,157,158,159,182,187,188

        */

        NSString * CM = @"^1(34[0-8]|(3[5-9]|5[017-9]|8[278])\\d)\\d{7}$";

        /**

        * 中国联通:China Unicom

        * 130,131,132,152,155,156,185,186

        */

        NSString * CU = @"^1(3[0-2]|5[256]|8[56])\\d{8}$";

        /**

        * 中国电信:China Telecom

        * 133,1349,153,180,189

        */

        NSString * CT = @"^1((33|53|8[09])[0-9]|349)\\d{7}$";

        /**

         *大陆地区固话及小灵通

        * 区号:010,020,021,022,023,024,025,027,028,029

         *号码:七位或八位

        */

        // NSString * PHS = @"^0(10|2[0-5789]|\\d{3})\\d{7,8}$";

        

        NSPredicate *regextestmobile = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", MOBILE];

        NSPredicate *regextestcm = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CM];

        NSPredicate *regextestcu = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CU];

        NSPredicate *regextestct = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CT];

        

        if (([regextestmobile evaluateWithObject:mobileNum] == YES)

            || ([regextestcm evaluateWithObject:mobileNum] == YES)

            || ([regextestct evaluateWithObject:mobileNum] == YES)

            || ([regextestcu evaluateWithObject:mobileNum] == YES))

        {

            return YES;

        }

        else

        {

            return NO;

        }

    }

     

     

     

    Swift:

    import Foundationenum Validate {    case email(_: String)    case phoneNum(_: String)    case carNum(_: String)    case username(_: String)    case password(_: String)    case nickname(_: String)    case URL(_: String)    case IP(_: String)    var isRight: Bool {        var predicateStr:String!        var currObject:String!        switch self {        case let .email(str):            predicateStr = "^([a-z0-9_\\.-]+)@([\\da-z\\.-]+)\\.([a-z\\.]{2,6})$"            currObject = str        case let .phoneNum(str):            predicateStr = "^((13[0-9])|(15[^4,\\D]) |(17[0,0-9])|(18[0,0-9]))\\d{8}$"            currObject = str        case let .carNum(str):            predicateStr = "^[A-Za-z]{1}[A-Za-z_0-9]{5}$"            currObject = str        case let .username(str):            predicateStr = "^[A-Za-z0-9]{6,20}+$"            currObject = str        case let .password(str):            predicateStr = "^[a-zA-Z0-9]{6,20}+$"            currObject = str        case let .nickname(str):            predicateStr = "^[\\u4e00-\\u9fa5]{4,8}$"            currObject = str        case let .URL(str):            predicateStr = "^(https?:\\/\\/)?([\\da-z\\.-]+)\\.([a-z\\.]{2,6})([\\/\\w \\.-]*)*\\/?$"            currObject = str        case let .IP(str):            predicateStr = "^(?:(?: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]?)$"            currObject = str        }        let predicate =  NSPredicate(format: "SELF MATCHES %@" ,predicateStr)        return predicate.evaluateWithObject(currObject)    }}

    使用:

    Validate.email("Dousnail@@153.com").isRight //falseValidate.URL("https://www.baidu.com").isRight //trueValidate.IP("11.11.11.11").isRight //true

     

    原创粉丝点击