我必须在iOS应用开发中使用一些正则表达式来验证测试是否是有效的pan卡。可以任何人帮助解决这个问题。
答案 0 :(得分:5)
swift 4.0的PAN卡验证
func validatePANCardNumber(_ strPANNumber : String) -> Bool{
let regularExpression = "[A-Z]{5}[0-9]{4}[A-Z]{1}"
let panCardValidation = NSPredicate(format : "SELF MATCHES %@", regularExpression)
return panCardValidation.evaluate(with: strPANNumber)
}
答案 1 :(得分:3)
您可以使用此代码:
- (BOOL)check:(NSString *)input
{
NSString *pattern = @"^[A-Za-z]{5}[0-9]{4}[A-Za-z]$"
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:pattern options:NULL error:&error];
NSArray *matches = [regex matchesInString:input options:NSMatchingProgress range:NSMakeRange(0, input.length)];
return matches.length && matches[0].range.location == 0
}
答案 2 :(得分:3)
这是验证Pan卡号的非常简单的功能。
- (BOOL) validatePanCardNumber: (NSString *) cardNumber {
NSString *emailRegex = @"^[A-Z]{5}[0-9]{4}[A-Z]$";
NSPredicate *cardTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
return [cardTest evaluateWithObject:cardNumber];
}
用于调用此方法。
NSLog(@"%hhd",[self validatePanCardNumber:@"XXXX1111X"]);
使用此问题解决问题。
答案 3 :(得分:1)
PAN是一个10位数的字母数字,其中前5个字符是字母,接下来是4个数字,最后一个是字母。这10个 字符可以分为五个部分,如下所示。每个数字的含义已经进一步解释。
前三个字符是从AAA到ZZZ
PAN的第四个字符表示PAN持有者的状态。
•C - 公司
•P - 人
•H - HUF(印度教不可分割的家庭)
•F - 坚固
•A - 人员协会(AOP)
•T - AOP(信托)
•B - 个人团体(BOI)
•L - 地方当局
•J - 人工法人
•G - 政府
第五个字符代表PAN持有人的姓氏/姓氏的第一个字符。
这是我的代码。
- (BOOL)validatePancard:(NSString *)candidate
{
NSString *panCardRegex = @"[A-Z]{3}P[A-Z]{1}[0-9]{4}[A-Z]{1}";
NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", panCardRegex]; return [emailTest evaluateWithObject:candidate];
}