The string value to be split into substrings.
The object which contains a Symbol.split method, Omitting splitter or passing an object that doesn't contain a Symbol.split causes it to return an array with the calling string as a single element.
Optional
limit: numberA non-negative integer specifying a limit on the number of substrings to be included in the array. If provided, splits the string at each occurrence of the specified separator, but stops when limit entries have been placed in the array. Any leftover text is not included in the array at all.
An Array of strings, split at each point where the separator occurs in the given string.
const splitByNumber = {
[getKnownSymbol<typeof Symbol.split>(WellKnownSymbols.split)]: (str: string) => {
let num = 1;
let pos = 0;
const result = [];
while (pos < str.length) {
const matchPos = strIndexOf(str, asString(num), pos);
if (matchPos === -1) {
result.push(strSubstring(str, pos));
break;
}
result.push(strSubstring(str, pos, matchPos));
pos = matchPos + asString(num).length;
num++;
}
return result;
}
};
const myString = "a1bc2c5d3e4f";
console.log(polyStrSymSplit(myString, splitByNumber)); // [ "a", "bc", "c5d", "e", "f" ]
The
polyStrSymSplit()
splits a string into substrings using theSymbol.split
method from the splitter object to provide custom behavior. It uses getKnownSymbol to get the WellKnownSymbols.split symbol which will return the polyfill symbol value.