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:
- Wytnij znaki nie numeryczne z ciÄ?gu wej??ciowego i przejd?? do kroku 2.
- Je??eli d??ugo??Ä? ciÄ?gu znak??w wynosi 26 to przejd?? do kroku 3 w przeciwnym wypadku zwr??Ä? false.
- Do ciÄ?gu znak??w dopisz kod kraju 2521, kt??ry odpowiada kodowi literowemu PL (PÂ –Â 25, LÂ –Â 21).
- Dwa pierwsze elementy ciÄ?gu zawierajÄ?cego numeru konta przenie?? na koniec tego ciÄ?gu(kt??re zawierajÄ? sumÄ? kontrolnÄ?).
- 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.
- 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: