iOS 开发每天分享优质文章

iOS2019最新手机正则

2019-04-17  本文已影响21人  叩首问路梦码为生

基础方法

/**
 基础方法

 @param regex 正则表达式
 @return 正则验证成功返回YES, 否则返回NO
 */
- (BOOL)isValidateByRegex:(NSString *)regex {
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex];
    return [predicate evaluateWithObject:self];
}

一、验证手机号码 不区别运营商

/**
 验证手机号码

 @return 正则验证成功返回YES, 否则返回NO
 */
- (BOOL)isMobileNumber {// @"^(13[0-9]|14[56789]|15[0-9]|16[6]|17[0-9]|18[0-9]|19[89])\\d{8}$";
    NSString *emailRegex = @"^1(3[0-9]|4[56789]|5[0-9]|6[6]|7[0-9]|8[0-9]|9[89])\\d{8}$";
    return [self isValidateByRegex:emailRegex];
}

+(BOOL)isMobileNum:(NSString *)input{

     input = [input stringByReplacingOccurrencesOfString:@" " withString:@""];
    if (input.length != 11) {
        return NO;
    } else {
        
        //^((13[0-9])|(14[1]|[4-9])|(15([0-3]|[5-9]))|(16[2]|[5-7])|(17[0-3]|[5-8])|(18[0-9])|(19[1|8|9]))\\d{8}$
    
         NSString * CT = @"^1[3|4|5|6|7|8|9][0-9]{9}$";
         NSPredicate *regextestct = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CT];
         BOOL res4 = [regextestct evaluateWithObject:input];
         if (res4 ) {
         return YES;
         }else {
         return NO;
         }
    }

}

二、验证手机号码 区别运营商

可点击查看哟👇

各运营商号段

/**
 判断运营商
 各个运营商开头号码不同 需要根据运营商更新

 @return  正则验证成功返回YES, 否则返回NO
 */
- (BOOL)isMobileNumberClassification {
    /**
     * 手机号码
     * 移动:134(0-8)、135、136、137、138、139、147、150、151、152、157、158、159、172、178、182、183、184、187、188、198
     *
     * 联通:130、131、132、145、155、156、166、175、176、185、186
     *
     * 电信:133、149、153、173、177、180、181、189、199
     *
        虚拟运营商
        电信:1700、1701、1702
        移动:1703、1705、1706
        联通:1704、1707、1708、1709、171
        卫星通信:1349
     */
    /**
                * 中国移动:China Mobile
                * 134(0-8)、135、136、137、138、139、147、150、151、152、157、158、159、172、178、182、183、184、187、188、198

     */
    NSString * CM = @"^1(34[0-8]|3[5-9]|47|5[0127-9]|8[23478]|198)\\d{8}$";
    /**
                * 中国联通:China Unicom
                * 130、131、132、145、155、156、166、175、176、185、186
     */
    NSString * CU = @"^1((3[0-2]|45|5[56]|166|7[56]|8[56]))\\d{8}$";
    /**
                * 中国电信:China Telecom
                * 133、149、153、173、177、180、181、189、199
     */
    NSString * CT = @"^1((33|49|53|7[37]|8[019]|199))\\d{8}$";

    if ([self isValidateByRegex:CM]) {
        NSLog(@"手机运营商是====CM---中国移动");
        return YES;
    } else if ([self isValidateByRegex:CU]) {
        NSLog(@"手机运营商是====CU---中国联通");
        return YES;
    } else if ([self isValidateByRegex:CT]){
        NSLog(@"手机运营商是====CT---中国电信");
        return YES;
    } else {
        return NO;
    }

}

js 写法

function isMobile(s) {
            var reg = /^1[3|4|5|6|7|8|9][0-9]{9}$/; //验证规则
            var flag = reg.test(s); //true
            return flag;
}
移动号码验证:

function isYdmobile(s){
        var yd = /1(3[4-9]|4[478]|5[012789]|7[28]|8[23478]|9[8])\d{8}/; //验证规则
        var flag = yd.test(s); //true
        return flag;
}
联通号码验证:

function isLtmobile(s){
        var lt = /1(3[0-2]|4[56]|5[56]|6[6]|7[156]|8[56])\d{8}/; //验证规则
        var flag = lt.test(s); //true
        return flag;
}
电信号码验证:

function isDxmobile(s){
        var dx = /1(3[3]|4[19]|5[3]|7[03479]|8[019]|9[9])\d{8}/; //验证规则
        var flag = dx.test(s); //true
        return flag;
}
上一篇 下一篇

猜你喜欢

热点阅读