NSString+Validation.h 1.9 KB
//
//  NSString+Validation.h
//  CNLiveScioLive
//
//  Created by CNLive-zxw on 2018/9/20.
//  Copyright © 2018年 CNLive. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface NSString (Validation)
- (BOOL)isValidMobile;

//邮箱
- (BOOL)isValidEmail;
//验证码
- (BOOL)isValidCode;
//身份证号
- (BOOL) simpleVerifyIdentityCardNum;
//车牌
- (BOOL)isCarNumber;
- (BOOL)isMacAddress;
//url
- (BOOL)isValidUrl;
//中文
- (BOOL)isValidChinese;
//邮政编码
- (BOOL)isValidPostalCode;
//车牌
- (BOOL)isValidTaxNo;

- (BOOL)isValidWithMinLenth:(NSInteger)minLenth
                   maxLenth:(NSInteger)maxLenth
             containChinese:(BOOL)containChinese
        firstCannotBeDigtal:(BOOL)firstCannotBeDigtal;

- (BOOL)isValidWithMinLenth:(NSInteger)minLenth
                   maxLenth:(NSInteger)maxLenth
             containChinese:(BOOL)containChinese
              containDigtal:(BOOL)containDigtal
              containLetter:(BOOL)containLetter
      containOtherCharacter:(NSString *)containOtherCharacter
        firstCannotBeDigtal:(BOOL)firstCannotBeDigtal;

#pragma mark - 算法相关
//精确的身份证号码有效性检测
+ (BOOL)accurateVerifyIDCardNumber:(NSString *)value;

/** 银行卡号有效性问题Luhn算法
 * 现行 16 位银联卡现行卡号开头 6 位是 622126~622925 之间的,7 到 15 位是银行自定义的,
 * 可能是发卡分行,发卡网点,发卡序号,第 16 位是校验码。
 * 16 位卡号校验位采用 Luhm 校验方法计算:
 * 1,将未带校验位的 15 位卡号从右依次编号 1 到 15,位于奇数位号上的数字乘以 2
 * 2,将奇位乘积的个十位全部相加,再加上所有偶数位上的数字
 * 3,将加法和加上校验位能被 10 整除。
 */
- (BOOL)bankCardluhmCheck;
- (BOOL)isIPAddress;

- (BOOL)isValidPassWordLegal;
- (BOOL)isValidPasswordString;
+ (NSString *)numberSuitScanf:(NSString*)number;

@end