Merge pull request #56 from ChaiBotta/master

aggiunta validazione codice fiscale con regex considerando anche omocodie
This commit is contained in:
Luca Adalberto Vandro 2021-02-17 11:27:00 +01:00 committed by GitHub
commit 3e0fb5cf88
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 10 additions and 3 deletions

2
package-lock.json generated
View File

@ -1,6 +1,6 @@
{ {
"name": "codice-fiscale-js", "name": "codice-fiscale-js",
"version": "2.3.6", "version": "2.3.7",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {

View File

@ -84,6 +84,9 @@ class CodiceFiscale {
if (cf.length !== 16) { if (cf.length !== 16) {
return false 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) const expectedCheckCode = codiceFiscale.charAt(15)
cf = codiceFiscale.slice(0, 15) cf = codiceFiscale.slice(0, 15)
return CodiceFiscale.getCheckCode(cf).toUpperCase() === expectedCheckCode.toUpperCase(); return CodiceFiscale.getCheckCode(cf).toUpperCase() === expectedCheckCode.toUpperCase();

View File

@ -105,7 +105,10 @@ describe('CodiceFiscale.compute', () => {
.toBeDefined() .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", () => { test("calcola il codice fiscale di persone nate all'estero", () => {
@ -445,6 +448,7 @@ describe("La classe Comune", ()=>{
}) })
describe("Il metodo toString()", ()=>{ describe("Il metodo toString()", ()=>{
test("funziona correttamente anche con le omocodie", ()=>{ test("funziona correttamente anche con le omocodie", ()=>{
let cf = new CodiceFiscale({ let cf = new CodiceFiscale({
@ -460,4 +464,4 @@ describe("Il metodo toString()", ()=>{
expect(cf.toString()).toBe("RSSMRA87B01H501A"); expect(cf.toString()).toBe("RSSMRA87B01H501A");
}) })
}) })