200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > ios 实名认证 手机号 身份证 银行卡 以及银行卡的格式 正则表达式

ios 实名认证 手机号 身份证 银行卡 以及银行卡的格式 正则表达式

时间:2019-10-31 02:59:07

相关推荐

ios 实名认证  手机号 身份证 银行卡  以及银行卡的格式  正则表达式

/**

银行卡格式

@param textField 格式

@param range 银行卡

*/

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {

NSString *text = [textField text];

NSCharacterSet *characterSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789\b"];

string = [string stringByReplacingOccurrencesOfString:@" " withString:@""];

if ([string rangeOfCharacterFromSet:[characterSet invertedSet]].location != NSNotFound) {

return NO;

}

text = [text stringByReplacingCharactersInRange:range withString:string];

text = [text stringByReplacingOccurrencesOfString:@" " withString:@""];

NSString *newString = @"";

while (text.length > 0) {

NSString *subString = [text substringToIndex:MIN(text.length, 4)];

newString = [newString stringByAppendingString:subString];

if (subString.length == 4) {

newString = [newString stringByAppendingString:@" "];

}

text = [text substringFromIndex:MIN(text.length, 4)];

}

newString = [newString stringByTrimmingCharactersInSet:[characterSet invertedSet]];

if (newString.length > 23) {

return NO;

}

[textField setText:newString];

return NO;

}

//身份证号

/**

正则表达式

@param IDCardNumber 身份证

@return 验证

*/

- (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];

}

/**

正则表达式

@param mobile 手机号

@return 验证

*/

- (BOOL)validateMobile:(NSString *)mobile

{

// 130-139 150-153,155-159 180-189 145,147 170,171,173,176,177,178

NSString *phoneRegex = @"^((13[0-9])|(15[^4,\\D])|(18[0-9])|(14[57])|(17[013678]))\\d{8}$";

NSPredicate *phoneTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",phoneRegex];

return [phoneTest evaluateWithObject:mobile];

}

/**

正则表达式

@param cardNumber 银行卡

@return 验证

*/

-(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;

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。