-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdefineRegExpCode.js
More file actions
74 lines (66 loc) · 1.94 KB
/
defineRegExpCode.js
File metadata and controls
74 lines (66 loc) · 1.94 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
let responseDadosBoleto = {
quantidadeBoleto: "2",
boleto01: { valor: "R$59,90", vencimento: "12/12/2022", codigo: "36490.00084 00031.521305 00003.127941 5 00000000005990", id: "1453417" },
boleto02: { valor: "R$59,90", vencimento: "10/01/2023", codigo: "36490.00043 00031.521305 00003.377637 3 00000000005990", id: "1491289" },
};
if (responseDadosBoleto.quantidadeBoleto == 1) {
let code = responseDadosBoleto.codigo;
code = replaceAll(code, " ", "");
code = replaceAll(code, ".", "");
let result = [];
result.push(generateRegex(code));
console.log(result[0]);
return result;
}
if (responseDadosBoleto.quantidadeBoleto > 1) {
var properties = Object.keys(responseDadosBoleto);
var newObject = { boletos: [] };
for (let k = 1; k < properties.length; k++) {
newObject.boletos.push(responseDadosBoleto[properties[k]]);
}
let dadosBoleto = newObject;
let result = [];
for (let i = 0; i < responseDadosBoleto.quantidadeBoleto; i++) {
let code = dadosBoleto.boletos[i].codigo;
code = code.replaceAll(".", "");
code = code.replaceAll(" ", "");
result.push(generateRegex(code));
}
console.log(result);
return result;
}
function checkNextChar(list, i, char) {
if (list[i + 1] == char) {
return true;
}
return false;
}
function replaceAll(text, value, replacer) {
while (text.includes(value)) {
text = text.replace(value, replacer);
}
return text;
}
function generateRegex(code) {
let groups = [];
for (let i = 0; i < code.length; i++) {
let chars = [];
if (code[i] == "0") {
while (checkNextChar(code, i, "0")) {
chars.push(code[i]);
i++;
}
chars.push(code[i]);
let zeroGroup = chars.join("");
if (zeroGroup.length > 3) {
groups.push(`0{${zeroGroup.length - 1},${zeroGroup.length}}`);
continue;
} else {
groups.push(code[i]);
continue;
}
}
groups.push(code[i]);
}
return groups.join("");
}