Rumah hujung hadapan web tutorial js 判断身份证与银行卡号格式的正则怎么写

判断身份证与银行卡号格式的正则怎么写

Mar 30, 2018 pm 02:47 PM
Format kad pengenalan

这次给大家带来判断身份证与银行卡号格式的正则怎么写,使用判断身份证与银行卡号格式正则的注意事项有哪些,下面就是实战案例,一起来看一下。

1.有时候我们会用到上传身份证号,或者银行卡号,这个时候就需要我们对身份证号以及银行卡号,进行基本的判断。

下面便是身份证号的判断返回YES是合法,反之不合法

#pragma mark 判断身份证号是否合法
- (BOOL)judgeIdentityStringValid:(NSString *)identityString {
  if (identityString.length != 18) return NO;
  // 正则表达式判断基本 身份证号是否满足格式
  NSString *regex2 = @"^(^[1-9]\\d{7}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}$)|(^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])((\\d{4})|\\d{3}[Xx])$)$";
  NSPredicate *identityStringPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex2];
  //如果通过该验证,说明身份证格式正确,但准确性还需计算
  if(![identityStringPredicate evaluateWithObject:identityString]) return NO;
  //** 开始进行校验 *//
  //将前17位加权因子保存在数组里
  NSArray *idCardWiArray = @[@"7", @"9", @"10", @"5", @"8", @"4", @"2", @"1", @"6", @"3", @"7", @"9", @"10", @"5", @"8", @"4", @"2"];
  //这是除以11后,可能产生的11位余数、验证码,也保存成数组
  NSArray *idCardYArray = @[@"1", @"0", @"10", @"9", @"8", @"7", @"6", @"5", @"4", @"3", @"2"];
  //用来保存前17位各自乖以加权因子后的总和
  NSInteger idCardWiSum = 0;
  for(int i = 0;i < 17;i++) {
    NSInteger subStrIndex  = [[identityString substringWithRange:NSMakeRange(i, 1)] integerValue];
    NSInteger idCardWiIndex = [[idCardWiArray objectAtIndex:i] integerValue];
    idCardWiSum      += subStrIndex * idCardWiIndex;
  }
  //计算出校验码所在数组的位置
  NSInteger idCardMod=idCardWiSum%11;
  //得到最后一位身份证号码
  NSString *idCardLast= [identityString substringWithRange:NSMakeRange(17, 1)];
  //如果等于2,则说明校验码是10,身份证号码最后一位应该是X
  if(idCardMod==2) {
    if(![idCardLast isEqualToString:@"X"]||[idCardLast isEqualToString:@"x"]) {
      return NO;
    }
  }else{
    //用计算出的验证码与最后一位身份证号码匹配,如果一致,说明通过,否则是无效的身份证号码
    if(![idCardLast isEqualToString: [idCardYArray objectAtIndex:idCardMod]]) {
      return NO;
    }
  }
  return YES;
}
Salin selepas log masuk

在接下来便是银行卡号的的判断返回YES或者是真是合法,反之不合法

#pragma mark 判断银行卡号是否合法
-(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;
}
Salin selepas log masuk

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

正则的数字验证详解(附代码)

JS正则表达式验证数字的实战归纳

Atas ialah kandungan terperinci 判断身份证与银行卡号格式的正则怎么写. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk menulis format peti mel qq Apakah format peti mel qq? Bagaimana untuk menulis format peti mel qq Apakah format peti mel qq? Feb 22, 2024 pm 03:40 PM

E-mel QQ: QQ number@qq.com, Bahasa Inggeris QQ e-mel: Bahasa Inggeris atau numbers@qq.com, akaun e-mel foxmail: sediakan akaun@foxmail.com anda sendiri, akaun e-mel telefon bimbit: nombor telefon bimbit@qq.com. Tutorial Model Berkenaan: iPhone13 Sistem: IOS15.3 Versi: Peti Mel QQ 6.3.3 Analisis Peti mel 1QQ mempunyai empat format, peti mel QQ yang biasa digunakan: QQ number@qq.com, peti mel QQ Inggeris: Bahasa Inggeris atau numbers@qq.com, foxmail E-mel akaun: sediakan akaun@foxmail.com anda sendiri, akaun e-mel telefon bimbit: nombor telefon bimbit@qq.com. Tambahan: Apakah peti mel qq 1 Peti mel QQ terawal hanya antara pengguna QQ

Cara menggunakan petikan blok dalam Apple Notes Cara menggunakan petikan blok dalam Apple Notes Oct 12, 2023 pm 11:49 PM

Dalam iOS 17 dan macOS Sonoma, Apple telah menambah pilihan pemformatan baharu untuk Apple Notes, termasuk petikan blok dan gaya Monostyle baharu. Inilah cara untuk menggunakannya. Dengan pilihan pemformatan tambahan dalam Apple Notes, anda kini boleh menambah petikan blok pada nota anda. Format petikan blok memudahkan untuk mengimbangi bahagian penulisan secara visual menggunakan bar petikan di sebelah kiri teks. Hanya ketik/klik butang format "Aa" dan pilih pilihan petikan blok sebelum menaip atau apabila anda berada di baris yang anda ingin tukar kepada petikan blok. Pilihan ini digunakan pada semua jenis teks, pilihan gaya dan senarai, termasuk senarai semak. Dalam menu Format yang sama anda boleh mencari pilihan Gaya Tunggal baharu. Ini ialah semakan bagi "lebar sama" sebelumnya

Apakah format fail dakwat? Apakah format fail dakwat? Feb 03, 2023 pm 02:32 PM

dakwat ialah format fail pintasan; pintasan ialah objek fail yang mempunyai fungsi yang serupa dengan pautan simbolik, tetapi pada asasnya berbeza daripada pautan simbolik ialah fail biasa, bukan simbol, dan sambungannya ialah " .lnk" , jadi pintasan boleh disalin, dialihkan, ditukar atau dipadamkan; pintasan boleh menghala ke fail, folder atau mana-mana lokasi undang-undang lain dalam sistem.

Satu kad pengenalan boleh membuka beberapa kedai Taobao Satu kad pengenalan boleh membuka beberapa kedai Taobao Oct 10, 2023 pm 01:51 PM

Kad pengenalan hanya boleh membuka satu kedai Taobao. Penjual harus mematuhi peraturan platform Taobao dan tidak cuba menggunakan kad pengenalan orang lain untuk membuka berbilang kedai. Penjual boleh mengembangkan perniagaan mereka dan meningkatkan jualan dengan menggabungkan kedai dan membuka cawangan. Walau bagaimanapun, perlu diingatkan bahawa setiap cawangan perlu menggunakan kad ID bebas untuk pengesahan nama sebenar.

pptm是什么格式 pptm是什么格式 Jan 11, 2021 pm 02:46 PM

pptm是office办公套件中powerpoint的一种文件格式,全名是“启用宏的PowerPoint演示文稿”。pptm文件只能用2007及以上版本的office软件打开,如果用其他版本软件打开会出现无法编辑、图片不完整等问题。

Apakah format m3u8? Apakah format m3u8? Feb 20, 2023 pm 01:38 PM

m3u8 ialah format pengekodan UTF-8. M3U8 merujuk kepada fail M3U yang dikodkan UTF-8, dan fail M3U merekodkan fail teks biasa indeks Apabila anda membukanya, perisian main balik tidak memainkannya, tetapi mencari alamat rangkaian fail audio dan video yang sepadan berdasarkannya. indeks untuk pemprosesan dalam talian. M3U8 ialah format media penstriman biasa, yang wujud terutamanya dalam bentuk senarai fail Ia menyokong siaran langsung dan main balik atas permintaan, dan biasanya digunakan pada platform seperti Android dan iOS.

cr3是什么格式文件 cr3是什么格式文件 Jun 23, 2021 pm 03:22 PM

CR3文件是佳能采用Digic8图像处理器的新型相机记录的原始raw文件。cr3的文件可以通过佳能ddp打开,是对RAW图像进行“RAW显像”等图像调节的软件。

Apakah format rtf Apakah format rtf Jan 30, 2023 pm 02:35 PM

Nama penuh RTF ialah "Format Teks Kaya", yang bermaksud "Format Teks Kaya" atau "Format Teks Berbilang" dalam bahasa Cina Ia adalah format dokumen merentas platform yang dibangunkan oleh Microsoft RTF ialah format dokumen yang boleh disimpan oleh Word agar serasi dengan perisian pemprosesan perkataan lain, adalah fail yang serupa dengan format DOC (dokumen Word) dan mempunyai keserasian yang baik. Bagi pengguna biasa, format RTF ialah alat penukaran format fail yang baik untuk memindahkan dokumen teks berformat antara aplikasi yang berbeza.

See all articles