Személyes eszközök
Keresés

 

A InfoWiki wikiből


Tartalomjegyzék

TAJ szám

A taj szám egy összesen 9 karakteres azonosító, "3-3-3" alakú. Nem csak formailag kell megfeleljen, hanem a számjegyekre van egy helyességi ellenőrző algoritmus is.

//  0: Jó TAJ szám
// -1: Rossz a kapott érték hossza (csak 9 /elválasztás nélkül/ 
//     vagy 11 /elválasztással/ karakter lehet)
// -2: A kapott érték nem csak számjegyet tartalmaz (kivéve: elválasztás)
// -3: A kapott érték CDV hibás
public static int CheckTAJ(string cTAJ)
{
    cTAJ = Regex.Replace(cTAJ, "\\s|-", "");
 
    if (cTAJ.Length != 9) return -1;
 
    long j;
    if (!long.TryParse(cTAJ, out j)) return -2;
 
    int nCDV = 0;
    for (int i = 0; i < 8; i++)
    {
        nCDV += int.Parse(cTAJ[i].ToString()) * (3 + 4 * (i % 2));
    }
    if (int.Parse(cTAJ[8].ToString()) != (nCDV % 10)) return -3;
 
    return 0;
}

A regex.replace csak kiszedi a string-ből a kötőjel karakterekt. A fenti függvény a számjegyeken belüli ellenőrzést végzi csak (C# nyelven van írva). A feladat: a form-ra tegyünk fel egy TAJ SZÁM input mezőt, melyet kötelező kitölteni, és 3-3-3 formájúnak kell lennie (11 számjegy az össz-hossz), de a számjegyek közötti összefüggést is vizsgálni kell.

Bankszámlaszám

Hasonló a probléma a bankszámlaszámokkal is. Normális esetben az vagy 8-8, vagy 8-8-8 alakú. Ellenőrző algoritmus is van a számjegyekre.

//  0: Jó bankszámlaszám
// -1: Rossz a kapott érték hossza (csak 16 /elválasztás nélkül/ 
//     vagy 17 /elválasztással/ , illetve 24 /elválasztás nélkül/ 
//     vagy 26 /elválasztással/ karakter lehet)
// -2: A kapott érték nem csak számjegyet tartalmaz (kivéve: elválasztás)
// -3: A kapott érték CDV hibás
 
static int[] aCDV = new int[]{9,7,3,1};
 
public static int CheckBankSzamla(string cSzla)
{
    cSzla = Regex.Replace(cSzla, "\\s|-", "");
 
    if (cSzla.Length != 16 && cSzla.Length != 24) return -1;
 
    if (cSzla.Length == 16) cSzla += "00000000";
 
    if (!Regex.IsMatch(cSzla, "^\\d+$")) return -2;
 
    int nCDV = 0;
    for (int i = 0; i < 7; i++)
    {
        nCDV += int.Parse(cSzla[i].ToString()) * aCDV[(i % 4)];
    }
    if (int.Parse(cSzla[7].ToString()) != ((10 - (nCDV % 10)) % 10)) return -3;
 
    nCDV = 0;
    for (int i = 8; i < 15; i++)
    {
        nCDV += int.Parse(cSzla[i].ToString()) * aCDV[((i - 8) % 4)];
    }
    if (int.Parse(cSzla[15].ToString()) != ((10 - (nCDV % 10)) % 10)) return -3;
 
    return 0;
}

A fenti C# nyelvi ellenőrző függvényt írjuk át JavaScript nyelvre, a form-ra adjunk meg egy BANKSZÁMLASZÁM mezőt, és formailag ellenőrízzük le kliens oldalon a beírt értéket.

Adószám

Hasonló a probléma az adószámmal is. Ez 8-1-2 formájú lehet csak, szintén tartalmaz megkötéseket, melyik pozíción milyen karakter fordulhat elő, ill. további összefüggés-vizsgálat is van. C# nyelvi ellenőrző függvényt megadjuk:

///  0: Jó adószám
/// -1: Rossz a kapott érték hossza (csak 11 /elválasztás nélkül/ 
//      vagy 13 /elválasztással/ karakter lehet)
/// -2: A kapott érték nem csak számjegyet tartalmaz (kivéve: elválasztás)
/// -3: A 9. helyen nem 1,2 vagy 3 szerepel (adómentes, adóköteles, EVA)
/// -4: Az utolsó két számjegy nem a következők egyike: 02-20, 41-44, 51
/// -5: A kapott érték CDV hibás
 
public static int CheckAdoszam(string cAdo)
{
    cAdo = Regex.Replace(cAdo, "\\s|-", "");
 
    if (cAdo.Length != 11) return -1;
 
    long j;
    if (!long.TryParse(cAdo, out j)) return -2;
 
    if (cAdo[8] != '1' && cAdo[8] != '2' && cAdo[8] != '3') return -3;
 
    int nCDV = int.Parse(cAdo.Substring(9, 2));
    if (!((nCDV > 1 && nCDV < 21) || 
         (nCDV > 42 && nCDV < 45) || nCDV == 51)) return -4;
 
    nCDV = 0;
    for (int i = 0; i < 7; i++)
    {
        nCDV += int.Parse(cAdo[i].ToString()) * aCDV[(i % 4)];
    }
    if (int.Parse(cAdo[7].ToString()) != ((10 - (nCDV % 10)) % 10)) return -5;
 
    return 0;
}

Tegyünk fel a form-ra egy adószám mezőt, tartalmát ellenőrízzük le kliens oldalon JavaScript-el.

Súgó

A TAJ, adószám, bankszámlaszám mezőre lépve jelenjen meg az oldalon rövid leírás a formátumra vonatkozó szabályokról.

A lap eredeti címe: „http://wiki.ektf.hu/wiki/Frm2:page06
Nézetek
nincs sb_44.204.34.64 cikk