diff --git a/__tests__/utils.test.ts b/__tests__/utils.test.ts index 45b01b0d..31252907 100644 --- a/__tests__/utils.test.ts +++ b/__tests__/utils.test.ts @@ -109,6 +109,9 @@ describe('Utils tests', () => { expect( await utils.CSVArray('a=E_ALL, b=E_ALL & ~ E_ALL, c="E_ALL", d=\'E_ALL\'') ).toEqual(['a=E_ALL', 'b=E_ALL & ~ E_ALL', 'c=E_ALL', 'd=E_ALL']); + expect( + await utils.CSVArray('a="b=c;d=e", b=\'c=d,e\', c="g=h,i=j", d=g=h, a===') + ).toEqual(["a='b=c;d=e'", "b='c=d,e'", "c='g=h,i=j'", "d='g=h'", "a='=='"]); expect(await utils.CSVArray('')).toEqual([]); expect(await utils.CSVArray(' ')).toEqual([]); }); diff --git a/dist/index.js b/dist/index.js index 6111a971..c84d0142 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1172,7 +1172,8 @@ async function CSVArray(values_csv) { return value .trim() .replace(/^["']|["']$|(?<==)["']/g, '') - .replace(/=(((?!E_).)*[?{}|&~![()^]+((?!E_).)+)/, "='$1'"); + .replace(/=(((?!E_).)*[?{}|&~![()^]+((?!E_).)+)/, "='$1'") + .replace(/=(.*?)(=.*)/, "='$1$2'"); }) .filter(Boolean); } diff --git a/src/utils.ts b/src/utils.ts index 2a3b1ac2..8a7d9554 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -246,7 +246,8 @@ export async function CSVArray(values_csv: string): Promise> { return value .trim() .replace(/^["']|["']$|(?<==)["']/g, '') - .replace(/=(((?!E_).)*[?{}|&~![()^]+((?!E_).)+)/, "='$1'"); + .replace(/=(((?!E_).)*[?{}|&~![()^]+((?!E_).)+)/, "='$1'") + .replace(/=(.*?)(=.*)/, "='$1$2'"); }) .filter(Boolean); }