zoukankan      html  css  js  c++  java
  • ios 正则表达式之验证手机号、邮箱、身份证、银行卡

    1、手机号

    + (BOOL) IsPhoneNumber:(NSString *)number
    {
        NSString *phoneRegex1=@"1[34578]([0-9]){9}";
        NSPredicate *phoneTest1 = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",phoneRegex1];
        return  [phoneTest1 evaluateWithObject:number];
    }
    

     2、邮箱

    + (BOOL) IsEmailAdress:(NSString *)Email
    {
        NSString *emailCheck = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}";
        NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES%@",emailCheck];
        return [emailTest evaluateWithObject:Email];
    }
    

     3、身份证

    + (BOOL) IsIdentityCard:(NSString *)IDCardNumber
    {
        if (IDCardNumber.length <= 0) {
            return NO;
        }
        NSString *regex2 = @"^(\d{14}|\d{17})(\d|[xX])$";
        NSPredicate *identityCardPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex2];
        return [identityCardPredicate evaluateWithObject:IDCardNumber];
    }
    

     4、银行卡

    + (BOOL) IsBankCard:(NSString *)cardNumber
    {
        if(cardNumber.length==0)
        {
            return NO;
        }
        NSString *digitsOnly = @"";
        char c;
        for (int i = 0; i < cardNumber.length; i++)
        {
            c = [cardNumber characterAtIndex:i];
            if (isdigit(c))
            {
                digitsOnly =[digitsOnly stringByAppendingFormat:@"%c",c];
            }
        }
        int sum = 0;
        int digit = 0;
        int addend = 0;
        BOOL timesTwo = false;
        for (NSInteger i = digitsOnly.length - 1; i >= 0; i--)
        {
            digit = [digitsOnly characterAtIndex:i] - '0';
            if (timesTwo)
            {
                addend = digit * 2;
                if (addend > 9) {
                    addend -= 9;
                }
            }
            else {
                addend = digit;
            }
            sum += addend;
            timesTwo = !timesTwo;
        }
        int modulus = sum % 10;
        return modulus == 0;
    }
    
  • 相关阅读:
    天啦噜!原来Chrome自带的开发者工具能这么用你知道么!
    JavaScript易错知识点整理
    2016年开源巨献:来自百度的71款开源项目
    前端js面试中的常见的算法问题
    详解JS跨域问题
    console 输出信息
    js身份证校验
    阻止页面回退
    pc端js常用方法
    js实现QQ、微信、新浪微博分享功能
  • 原文地址:https://www.cnblogs.com/shen5214444887/p/5681802.html
Copyright © 2011-2022 走看看