diff --git a/src/format-cnpj/format-cnpj.test.ts b/src/format-cnpj/format-cnpj.test.ts index ab15077..faf9902 100644 --- a/src/format-cnpj/format-cnpj.test.ts +++ b/src/format-cnpj/format-cnpj.test.ts @@ -116,4 +116,16 @@ describe("formatCnpj", () => { "46.ABC.843/4850-00", ); }); + + it("should allow all alphabet letters for version 2 (including E, O, T, U)", () => { + expect(formatCnpj("12ABC34501DE35", { version: 2 })).toBe( + "12.ABC.345/01DE-35", + ); + expect(formatCnpj("12.ABC.345/01DE-35", { version: 2 })).toBe( + "12.ABC.345/01DE-35", + ); + expect(formatCnpj("12OUT345000199", { version: 2 })).toBe( + "12.OUT.345/0001-99", + ); + }); }); diff --git a/src/format-cnpj/format-cnpj.ts b/src/format-cnpj/format-cnpj.ts index 270bafe..d69f356 100644 --- a/src/format-cnpj/format-cnpj.ts +++ b/src/format-cnpj/format-cnpj.ts @@ -8,18 +8,8 @@ const sanitize = ( version?: FormatCnpjOptions["version"], ) => { if (version === 2) { - const allowedChars = "0123456789ABCDFGHIJKLMNPQRSVWXYZ"; const enhancedValue = value.toString(); - - let result = ""; - - for (let i = 0; i < enhancedValue.length; i++) { - if (allowedChars.includes(enhancedValue[i].toUpperCase())) { - result += enhancedValue[i].toUpperCase(); - } - } - - return result; + return enhancedValue.replace(/[^A-Za-z0-9]/g, "").toUpperCase(); } return sanitizeToDigits(value);