diff --git a/package-lock.json b/package-lock.json index a85cd32..5ebf323 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "codice-fiscale-js", - "version": "2.3.6", + "version": "2.3.7", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/src/codice-fiscale.js b/src/codice-fiscale.js index fb0c4ed..030ddb3 100755 --- a/src/codice-fiscale.js +++ b/src/codice-fiscale.js @@ -84,6 +84,9 @@ class CodiceFiscale { if (cf.length !== 16) { return false } + if(! /^[A-Z]{6}[0-9LMNPQRSTUV]{2}[ABCDEHLMPRST]{1}[0-9LMNPQRSTUV]{2}[A-Z]{1}[0-9LMNPQRSTUV]{3}[A-Z]{1}$/.test(cf)){ + return false; + } const expectedCheckCode = codiceFiscale.charAt(15) cf = codiceFiscale.slice(0, 15) return CodiceFiscale.getCheckCode(cf).toUpperCase() === expectedCheckCode.toUpperCase(); diff --git a/tests/index.spec.js b/tests/index.spec.js index cdd3cbd..3f83dc7 100755 --- a/tests/index.spec.js +++ b/tests/index.spec.js @@ -105,7 +105,10 @@ describe('CodiceFiscale.compute', () => { .toBeDefined() }) - + let invalidCfis = "BLIPTR93MO4A674Q"; + test('controlla il codice fiscale con una regex', () => { + expect(CodiceFiscale.check(invalidCfis)).toEqual(false); + }); test("calcola il codice fiscale di persone nate all'estero", () => { @@ -445,6 +448,7 @@ describe("La classe Comune", ()=>{ }) + describe("Il metodo toString()", ()=>{ test("funziona correttamente anche con le omocodie", ()=>{ let cf = new CodiceFiscale({ @@ -460,4 +464,4 @@ describe("Il metodo toString()", ()=>{ expect(cf.toString()).toBe("RSSMRA87B01H501A"); }) -}) \ No newline at end of file +})