Javascript: Walidator Numeru Rachunku Bankowego (NRB)

Opis Formatu NRB

Format NRB jest to 26 cyfr zapisanych w formacie:

CC AAAA AAAA BBBB BBBB BBBB BBBB

Gdzie:

  • CC to suma kontrolna (2 cyfry),
  • AAAAAAAA to numer rozliczeniowy jednostki organizacyjnej banku (8 cyfr),
  • BBBBBBBBBBBBBBBB to numer rachunku klienta w banku (16 cyfr).

WiÄ?cej na ten temat powie nam wikipedia.

Algorytm Walidacji:

  1. Wytnij znaki nie numeryczne z ciÄ?gu wej??ciowego i przejd?? do kroku 2.
  2. Je??eli d??ugo??Ä? ciÄ?gu znak??w wynosi 26 to przejd?? do kroku 3 w przeciwnym wypadku zwr??Ä? false.
  3. Do ciÄ?gu znak??w dopisz kod kraju 2521, kt??ry odpowiada kodowi literowemu PL (P – 25, L – 21).
  4. Dwa pierwsze elementy ciÄ?gu zawierajÄ?cego numeru konta przenie?? na koniec tego ciÄ?gu(kt??re zawierajÄ? sumÄ? kontrolnÄ?).
  5. PrzeglÄ?daj numer konta od ko??ca mno??Ä?c kolejno: ostaniÄ? cyfrÄ? numeru konta z pierwszÄ? wagÄ?  zawartÄ? w tablicy wag. SumujÄ?c wynik powy??szego mno??enia.
  6. Je??eli wynik  reszty z dzielenia przez 97  jest r??wny jeden to zwr??Ä? true w przeciwnym wypadku zwr??Ä? false

Implementacja funkcji sprawdzajÄ?cej poprawno??Ä? NRB

function NRBvalidatior(nrb)
  {
    nrb = nrb.replace(/[^0-9]+/g,'');
    var Wagi = new Array(1,10,3,30,9,90,27,76,81,34,49,5,50,15,53,45,62,38,89,17,
            73,51,25,56,75,71,31,19,93,57);
 
    if(nrb.length == 26) {
      nrb = nrb + "2521";
      nrb = nrb.substr(2) + nrb.substr(0,2);
      var Z =0;
      for (var i=0;i<30;i++) {
        Z += nrb[29-i] * Wagi[i];
      }
      if (Z % 97 == 1) {
        return true;
      }else{
        return false;
      }
 
    }else{
      return false;
    }
  }

Wywo??ywanie sprawdzania przy edycji pola lub wys??aniu formularza

$('form').submit(function(){
  if(NRBvalidatior($('input#nrb').val()))
  {
    return true;
  }
  else
  {
    return false;
  }
});

Live demo:

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Możesz użyć następujących tagów oraz atrybutów HTML-a: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>