-
-
Notifications
You must be signed in to change notification settings - Fork 453
Closed
Description
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 codeScreenshot with '|'. Not expected behavior in one element case:

Screenshot with '%'. Expected behavior as another special characters:

Thanks,
Metadata
Metadata
Assignees
Labels
No labels