Hello.
I am trying to parse an array of elements separated by the pipe character '|'.
The elements themselves might contain the pipe char, hence those should be encoded first (to %7C).
With array of 2 elements or above it works just fine.
However with array of one element it doesn't. My guess is that parse doesn't see explicitly pipe char, it decodes %7C into pipe char and creates array of 2 elements.
(A side note: this method with other special characters works just fine.)
please refer the following code example:
// begin of code
function TestQueryString(): void {
const value1: string = encodeURIComponent('a|b');
const twoElements = parse(`foo=${value1}|2`, {
arrayFormat: 'separator',
arrayFormatSeparator: '|',
});
console.log(twoElements); // Works as expected got: [ 'a|b', '2']
const oneElement = parse(`bar=${value1}`, {
arrayFormat: 'separator',
arrayFormatSeparator: '|',
});
console.log(oneElement); // Here is the issue. Expected: 'a|b' but got [ 'a', 'b']
}
// end of code
Screenshot with '|'. Not expected behavior in one element case:
Screenshot with '%'. Expected behavior as another special characters:
Thanks,
Pay now to fund the work behind this issue.
Get updates on progress being made.
Maintainer is rewarded once the issue is completed.
You're funding impactful open source efforts
You want to contribute to this effort
You want to get funding like this too