DNI validation fixes
This commit is contained in:
parent
f3044644b0
commit
9b153aec5a
|
@ -1,39 +1,39 @@
|
|||
const validateDni = require('../validateDni');
|
||||
|
||||
describe('DNI validation', () => {
|
||||
it('should return false for invented DNI', () => {
|
||||
it('should return true for any DNI when no country is passed', () => {
|
||||
let isValid = validateDni('Pepinillos');
|
||||
|
||||
expect(isValid).toBeFalsy();
|
||||
expect(isValid).toBeTruthy();
|
||||
});
|
||||
|
||||
describe('Spanish', () => {
|
||||
it('should return true for valid spanish DNI', () => {
|
||||
let isValid = validateDni('20849756A');
|
||||
let isValid = validateDni('20849756A', 'es');
|
||||
|
||||
expect(isValid).toBeTruthy();
|
||||
});
|
||||
|
||||
it('should return false for spanish DNI with exceeded digits', () => {
|
||||
let isValid = validateDni('208497563239A');
|
||||
let isValid = validateDni('208497563239A', 'es');
|
||||
|
||||
expect(isValid).toBeFalsy();
|
||||
});
|
||||
|
||||
it('should return false for spanish DNI with invalid letter', () => {
|
||||
let isValid = validateDni('20243746E');
|
||||
let isValid = validateDni('20243746E', 'es');
|
||||
|
||||
expect(isValid).toBeFalsy();
|
||||
});
|
||||
|
||||
it('should return true for valid spanish CIF', () => {
|
||||
let isValid = validateDni('B97367486');
|
||||
let isValid = validateDni('B97367486', 'es');
|
||||
|
||||
expect(isValid).toBeTruthy();
|
||||
});
|
||||
|
||||
it('should return false for spanish CIF with invalid letter', () => {
|
||||
let isValid = validateDni('A97527786');
|
||||
let isValid = validateDni('A97527786', 'es');
|
||||
|
||||
expect(isValid).toBeFalsy();
|
||||
});
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
module.exports = function(fi, country) {
|
||||
if (fi == null) return true;
|
||||
if (typeof fi != 'string') return false;
|
||||
if (fi == null || country == null)
|
||||
return true;
|
||||
if (typeof fi != 'string' || typeof country != 'string')
|
||||
return false;
|
||||
|
||||
fi = fi.toUpperCase();
|
||||
country = country ? country.toLowerCase() : 'es';
|
||||
country = country.toLowerCase();
|
||||
|
||||
let len = fi.length;
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ module.exports = function(iban) {
|
|||
|
||||
iban = iban.toUpperCase();
|
||||
iban = trim(iban);
|
||||
iban = iban.replace(/\s/g, "");
|
||||
iban = iban.replace(/\s/g, '');
|
||||
|
||||
if (iban.length != 24) {
|
||||
return false;
|
||||
|
@ -33,7 +33,7 @@ module.exports = function(iban) {
|
|||
|
||||
function module97(iban) {
|
||||
var parts = Math.ceil(iban.length / 7);
|
||||
var remainer = "";
|
||||
var remainer = '';
|
||||
|
||||
for (var i = 1; i <= parts; i++) {
|
||||
remainer = String(parseFloat(remainer + iban.substr((i - 1) * 7, 7)) % 97);
|
||||
|
@ -48,6 +48,6 @@ module.exports = function(iban) {
|
|||
}
|
||||
|
||||
function trim(text) {
|
||||
return (text || "").replace(/^(\s|\u00A0)+|(\s|\u00A0)+$/g, "" );
|
||||
return (text || '').replace(/^(\s|\u00A0)+|(\s|\u00A0)+$/g, '');
|
||||
}
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue