Sarrera normalizatzea eta formatua ematea
Jendeak IFZ bera modu askotara idazten du: 12345678z, 12.345.678-Z, 1234567L hasierako zerorik gabe, edo 10 karaktereko AIZ zahar bat. Liburutegiak denak onartzen ditu, adierazten duten dokumentua egiaztatzen du eta gordetzeko forma kanoniko bakar bat ematen dizu. Garbiketak ez du inoiz dokumentu baliogabe bat baliozko bihurtzen: dokumentu baliozko bat idazteko modu gehiago onartzen ditu, besterik ez.
Zer egiten duen normalizazioak
«Zer egiten duen normalizazioak» atalanormalize() funtzioak forma kanonikoa itzultzen du: iturri ofizialena, eta gorde behar duzuna. Hurrenkera honetan:
- Zuriuneak kentzen ditu edozein posiziotan (eta, horrenbestez, hasierako eta amaierako zuriuneak ere kentzen ditu), baita puntuak (NORM-2), marrak eta barrak ere (NORM-3).
- Minuskulak maiuskula bihurtzen ditu (NORM-1).
- 10 karaktereko AIZ zaharra (
X0+ 7 digitu + letra) 9 karaktereko formara murrizten du (NIE-3). - Hasierako zeroak gehitzen dizkio 8 digitu baino gutxiagorekin idatzitako NAN bati (NORM-4).
import { normalize } from "nif-dni-nie-cif-validation";
normalize(" 12.345.678-z "); // "12345678Z"normalize("b/1234567/4"); // "B12345674"normalize("x-0123456-7l"); // "X1234567L": AIZaren forma zaharra, murriztutanormalize("1234567L"); // "01234567L": hasierako zeroa berriro gehitzen danormalize("12345678\tZ"); // "12345678Z": tabulazioak eta beste zuriune batzuk ere bainormalize() funtzioak ez du egiaztatzen: kate garbia itzultzen du, dokumentua baliozkoa ez bada ere. Gainerako puntuazio-ikurrak nahita mantentzen dira (azpimarra bat, koma bat, marra ertain bat (–)); horrela, balio hori baliogabea izaten jarraitzen du, latinezkoen antza duten beste alfabeto batzuetako karaktereak bezala:
import { isValidNif, normalize } from "nif-dni-nie-cif-validation";
normalize("12_345_678Z"); // "12_345_678Z": azpimarrak ez dira bereizleakisValidNif("12_345_678Z"); // falseEgiaztatzaile guztiek, validate() funtzioak eta eskema guztiek sarrera normalizatzen dute lehenik, arau berekin; beraz, isValidNif(x) eta validate(x).valid bat datoz beti.
Dei bakar batean egiaztatu eta normalizatu
«Dei bakar batean egiaztatu eta normalizatu» atalavalidate() funtzioak forma kanonikoa itzultzen du normalized eremuan, emaitzarekin batera:
import { validate } from "nif-dni-nie-cif-validation";
validate(" b-1234567-4 ").normalized; // "B12345674"validate("x01234567l").normalized; // "X1234567L"validate("12345678A").normalized; // "12345678A": letra okerra izan arren, badagovalidate("hello").normalized; // null: ez da inongo dokumentu gisa ezagutzennormalized formatua ezagut daitekeen unetik dago, kontrol-karakterea okerra izan arren; horrela, erroreen ondoan erakuts diezaiokezu erabiltzaileari.
Normalizazioa desaktibatzea
«Normalizazioa desaktibatzea» atala{ normalize: false } aukerak bereizleak kentzea eta zeroekin betetzea desaktibatzen ditu. Minuskulak eta AIZaren forma zaharra onartzen jarraitzen dira, 1. bertsioan bezala:
import { isValidNif } from "nif-dni-nie-cif-validation";
isValidNif(" 12.345.678-Z ", { normalize: false }); // false: bereizleak baztertzen diraisValidNif("12345678z", { normalize: false }); // true: minuskulek balio dute oraindikisValidNif("X01234567L", { normalize: false }); // true: baita AIZaren forma zaharrak ereErabili bereizleak eta hasierako zerorik gabe idatzitako NANak baztertzeko. Ez du forma kanonikoa derrigortzen: minuskulak eta AIZaren forma zaharra onartzen jarraitzen dira (NORM-1, NIE-3).
IFZ-BEZ eta ES aurrizkia
«IFZ-BEZ eta ES aurrizkia» atalaES aurrizki bat ez da garbiketa: ES eta ondoren IFZ bat IFZ-BEZ bat da, beste identifikatzaile bat (VAT-1). normalize() funtzioak mantendu egiten du, eta validate() funtzioak baztertu egiten du, allowVatPrefix pasatzen ez baduzu:
import { normalize, validate } from "nif-dni-nie-cif-validation";
normalize("es-12345678-z"); // "ES12345678Z"validate("ES12345678Z").error?.code; // "INVALID_FORMAT"validate("es 12345678 z", { allowVatPrefix: true }).normalized; // "12345678Z"normalized eremuak ez du inoiz aurrizkia mantentzen. IFZ-BEZ bat gordetzeko, gehitu ES, edo erabili zSpanishVat() eta IFZ-BEZerako gainerako eskemak; haien irteerak mantendu egiten du.
Zenbaki bat erakustea: format()
«Zenbaki bat erakustea: format()» atalaIturri ofizial batek ere ez du zehazten nola taldekatu IFZ bat erakusteko. format() funtzioak forma kanonikoa arauek zehazten dituzten zatitan banatzen du, marra batekin, zuriune batekin edo ezerekin lotuta:
| Mota | Zatiak | Adibidea |
|---|---|---|
| NAN | 8 digitu · letra | 12345678-Z |
| AIZ | aurrizkia · 7 digitu · letra | X-1234567-L |
| K/L/M IFZ | aurrizkia · 7 digitu · letra | K-1234567-L |
| IFK | erakunde-gakoa · 7 digitu · kontrola | B-1234567-4 |
import { format } from "nif-dni-nie-cif-validation";
format("12345678z"); // "12345678-Z"format("x01234567l"); // "X-1234567-L"format(" b-1234567-4 "); // "B-1234567-4"format("B12345674", { separator: " " }); // "B 1234567 4"format("B12345674", { separator: "" }); // "B12345674"format("12345678A"); // null: dokumentu baliozkoei bakarrik ematen zaie formatuaformat() funtzioak aukera lehenetsiekin egiaztatzen du, eta null itzultzen du balio baliogabe ororentzat; beraz, prozesatu gabeko sarrerarekin dei dezakezu. Ez du inoiz ES aurrizkia gehitzen.
Liburutegiak onartzen dituen bereizleak
«Liburutegiak onartzen dituen bereizleak» atala| Sarrera | Onartzen da? | Araua |
|---|---|---|
Minuskulak (12345678z) |
Bai, baita normalize: false aukerarekin ere |
NORM-1 |
| Zuriuneak, tabulazioak, lerro-jauziak, puntuak | Bai | NORM-2 |
Marrak (-) eta barrak (/) |
Bai | NORM-3 |
Hasierako zerorik gabeko NAN bat (1234567L) |
Bai | NORM-4 |
AIZaren forma zaharra (X01234567L) |
Bai, baita normalize: false aukerarekin ere |
NIE-3 |
| Azpimarrak, komak, marra ertainak (–) eta beste ikur batzuk | Ez | — |
ES aurrizkia |
allowVatPrefix aukerarekin bakarrik, edo IFZ-BEZerako funtzioetan |
VAT-1 |