Skip to content

Commit b64d8e2

Browse files
committed
fix: support blank last name
Fixes: #9
1 parent f31881a commit b64d8e2

File tree

3 files changed

+41
-1
lines changed

3 files changed

+41
-1
lines changed

src/parse/__tests__/td1.js

+13
Original file line numberDiff line numberDiff line change
@@ -131,4 +131,17 @@ describe('parse TD1', () => {
131131
value: '0',
132132
});
133133
});
134+
135+
it('No last name', () => {
136+
const MRZ = [
137+
'I<CHED231458907ABC<<<<<<<<<<<<',
138+
'7408122F1204159CHE<<<<<<<<<<<1',
139+
'<<ANNA<MARIA<<<<<<<<<<<<<<<<<<',
140+
];
141+
142+
const result = parse(MRZ);
143+
expect(result.valid).toBe(true);
144+
expect(result.fields.lastName).toBe('');
145+
expect(result.fields.firstName).toBe('ANNA MARIA');
146+
});
134147
});

src/parse/__tests__/td3.js

+27
Original file line numberDiff line numberDiff line change
@@ -88,4 +88,31 @@ describe('parse TD3', () => {
8888
compositeCheckDigit: '0',
8989
});
9090
});
91+
92+
it('No last name', () => {
93+
const MRZ = [
94+
'P<IND<<FIRST<NAME<<<<<<<<<<<<<<<<<<<<<<<<<<<',
95+
'C01X0006H1D<<6408125F1710319<<<<<<<<<<<<<<<0',
96+
];
97+
98+
const result = parse.TD3(MRZ);
99+
expect(result.valid).toBe(true);
100+
expect(result.fields).toStrictEqual({
101+
documentCode: 'P',
102+
issuingState: 'IND',
103+
lastName: '',
104+
firstName: 'FIRST NAME',
105+
documentNumber: 'C01X0006H',
106+
documentNumberCheckDigit: '1',
107+
nationality: 'D',
108+
birthDate: '640812',
109+
birthDateCheckDigit: '5',
110+
sex: 'female',
111+
expirationDate: '171031',
112+
expirationDateCheckDigit: '9',
113+
personalNumber: '',
114+
personalNumberCheckDigit: '<',
115+
compositeCheckDigit: '0',
116+
});
117+
});
91118
});

src/parsers/parseLastName.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
let parseText = require('./parseText');
44

55
module.exports = function parseLastName(source) {
6-
const parsed = parseText(source.replace(/<{2}.*/, ''), /^[A-Z<]+<*$/);
6+
const parsed = parseText(source.replace(/<{2}.*/, ''), /^[A-Z<]*<*$/);
77
return {
88
value: parsed,
99
start: 0,

0 commit comments

Comments
 (0)