如何在目标c中检查pan卡编辑文本的验证?

时间:2015-05-08 12:20:18

标签: ios objective-c regex validation

我必须在iOS应用开发中使用一些正则表达式来验证测试是否是有效的pan卡。可以任何人帮助解决这个问题。

4 个答案:

答案 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个 字符可以分为五个部分,如下所示。每个数字的含义已经进一步解释。

  1. 前三个字符是从AAA到ZZZ

  2. 的字母系列
  3. PAN的第四个字符表示PAN持有者的状态。

    •C - 公司

    •P - 人

    •H - HUF(印度教不可分割的家庭)

    •F - 坚固

    •A - 人员协会(AOP)

    •T - AOP(信托)

    •B - 个人团体(BOI)

    •L - 地方当局

    •J - 人工法人

    •G - 政府

  4. 第五个字符代表PAN持有人的姓氏/姓氏的第一个字符。

  5. 接下来的四个字符是从0001到9999的连续编号。
  6. PAN中的最后一个字符是字母校验位
  7. 这是我的代码。

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