Archiwa tagu: NRB

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: