simple-pure-utils
Version:
Funciones puras para manipulación de objetos, arreglos, promesas y observables
49 lines • 3.04 kB
JavaScript
import { regexParse } from "./regex";
test("regex parse", () => {
/**Regex de un parametro de la formula en la forma [ABC.01] o [ABC].[01] donde ABC es el código de estudio y 01 el numero de parametro */
const paramRegex = /\[([a-z]+)(?:(?:\.)|(?:\]\.\[))([\d]+)\]/i;
/**Regex de un operador o parentesis */
const operatorRegex = /\(|\)|\*|\/|\+|\-/;
/**Regex de una constante numerica */
const numRegex = /[\d]+(?:\.[\d]+)?/;
const text = "([EGO].[44]) + [EGO.45]*5";
debugger;
const ret = regexParse(text, [paramRegex, numRegex, operatorRegex]);
const expected = [
{
value: "(",
regex: operatorRegex,
groups: []
}, {
value: "[EGO].[44]",
regex: paramRegex,
groups: ["EGO", "44"]
}, {
value: ")",
regex: operatorRegex,
groups: []
}, {
value: " "
}, {
value: "+",
regex: operatorRegex,
groups: []
}, {
value: " ",
}, {
value: "[EGO.45]",
regex: paramRegex,
groups: ["EGO", "45"]
}, {
value: "*",
regex: operatorRegex,
groups: []
}, {
value: "5",
regex: numRegex,
groups: []
}
];
expect(ret).toEqual(expected);
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnZXgudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdHJpbmdzL3JlZ2V4LnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYyxNQUFNLFNBQVMsQ0FBQztBQUVqRCxJQUFJLENBQUMsYUFBYSxFQUFFLEdBQUcsRUFBRTtJQUNyQix5SUFBeUk7SUFDekksTUFBTSxVQUFVLEdBQUcsMkNBQTJDLENBQUM7SUFFL0QsdUNBQXVDO0lBQ3ZDLE1BQU0sYUFBYSxHQUFHLG1CQUFtQixDQUFDO0lBRTFDLHFDQUFxQztJQUNyQyxNQUFNLFFBQVEsR0FBRyxtQkFBbUIsQ0FBQztJQUVyQyxNQUFNLElBQUksR0FBRywyQkFBMkIsQ0FBQztJQUN6QyxRQUFRLENBQUM7SUFDVCxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBRXBFLE1BQU0sUUFBUSxHQUFpQjtRQUMzQjtZQUNJLEtBQUssRUFBRSxHQUFHO1lBQ1YsS0FBSyxFQUFFLGFBQWE7WUFDcEIsTUFBTSxFQUFFLEVBQUU7U0FDYixFQUFFO1lBQ0MsS0FBSyxFQUFFLFlBQVk7WUFDbkIsS0FBSyxFQUFFLFVBQVU7WUFDakIsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQztTQUN4QixFQUFFO1lBQ0MsS0FBSyxFQUFFLEdBQUc7WUFDVixLQUFLLEVBQUUsYUFBYTtZQUNwQixNQUFNLEVBQUUsRUFBRTtTQUNiLEVBQUU7WUFDQyxLQUFLLEVBQUUsR0FBRztTQUNiLEVBQUU7WUFDQyxLQUFLLEVBQUUsR0FBRztZQUNWLEtBQUssRUFBRSxhQUFhO1lBQ3BCLE1BQU0sRUFBRSxFQUFFO1NBQ2IsRUFBRTtZQUNDLEtBQUssRUFBRSxHQUFHO1NBQ2IsRUFBRTtZQUNDLEtBQUssRUFBRSxVQUFVO1lBQ2pCLEtBQUssRUFBRSxVQUFVO1lBQ2pCLE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUM7U0FDeEIsRUFBRTtZQUNDLEtBQUssRUFBRSxHQUFHO1lBQ1YsS0FBSyxFQUFFLGFBQWE7WUFDcEIsTUFBTSxFQUFFLEVBQUU7U0FDYixFQUFFO1lBQ0MsS0FBSyxFQUFFLEdBQUc7WUFDVixLQUFLLEVBQUUsUUFBUTtZQUNmLE1BQU0sRUFBRSxFQUFFO1NBQ2I7S0FDSixDQUFDO0lBRUYsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUNsQyxDQUFDLENBQUMsQ0FBQSJ9