iOS 身份證最後一位是X,輸入17位後自動補全X

來源:互聯網
上載者:User

標籤:


非原創,轉載自http://blog.csdn.net/l2i2j2/article/details/51542028
如果身份證最後一位是X,輸入17位後自動補全X

// textField代理方法- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { // string.length為0,表明沒有輸入字元,應該是正在刪除,應該返回YES。 if (string.length == 0) { return YES; } // length為當前輸入框中的字元長度 NSUInteger length = textField.text.length + string.length; // 如果該頁面中還有其他的輸入框,則需要做這個判斷 if (textField == self.idNumberTextField) { // str為當前輸入框中的字元 NSString *str = [NSString stringWithFormat:@"%@%@", textField.text, string]; // 當輸入到17位元的時候,通過theLastIsX方法判斷最後一位是不是X if (length == 17 && [self theLastIsX:str]) { // 如果是17位,並通過前17位計算出18位為X,自動補全,並返回NO,禁止編輯。 textField.text = [NSString stringWithFormat:@"%@%@X", textField.text, string]; return NO; } // 如果是其他情況則直接返回小於等於18(最多輸入18位) return length <= 18; } return YES;}// 判斷最後一個是不是X- (BOOL)theLastIsX:(NSString *)IDNumber { NSMutableArray *IDArray = [NSMutableArray array]; for (int i = 0; i < 17; i++) { NSRange range = NSMakeRange(i, 1); NSString *subString = [IDNumber substringWithRange:range]; [IDArray addObject:subString]; } NSArray *coefficientArray = [NSArray arrayWithObjects:@"7", @"9", @"10", @"5", @"8", @"4", @"2", @"1", @"6", @"3", @"7", @"9", @"10", @"5", @"8", @"4", @"2", nil]; int sum = 0; for (int i = 0; i < 17; i++) { int coefficient = [coefficientArray[i] intValue]; int ID = [IDArray[i] intValue]; sum += coefficient * ID; } if (sum % 11 == 2) return YES; else return NO;}

 

iOS 身份證最後一位是X,輸入17位後自動補全X(轉)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.