JS: String.prototype.split
str.split(separatorStr)
-
Split the string by separator (a string).
Result is Array. The separator is not included in result unless using regex arg with capture.
const xx = "ab cd".split(" "); console.log(JSON.stringify(xx) === `["ab","cd"]`);
str.split(regex)
-
Split the string by regex. 〔see JS: RegExp Syntax〕
If regex contains capturing parentheses, the captured parts are included in result.
// split string by regex const xx = "a b c"; console.log(xx.split(/ +/)); // [ "a", "b", "c" ]
// split string by regex with capture, to include the separator in result const xx = "a-b-c"; console.log(xx.split(/(-)/)); // [ "a", "-", "b", "-", "c" ]
str.split(sep, n)
-
get just the first n items.
const xx = "a,b,c,d"; console.log(xx.split(",", 2)); // [ "a", "b" ]
str.split()
-
Return array of 1 element, the element is the whole string.
const xx = "a,b,c"; console.log(xx.split()); // [ "a,b,c" ]
str.split("")
-
Each char is array element.
🛑 WARNING: If the string contain character whose codepoint ≥ 2^16, such as emoji 😂, the result is not what expected. 〔see JS: String Code Unit〕
String Separator Example
Repeated space in string may result empty string element in array.
/* Repeated space in string may result empty string element in array. */ console.log( JSON.stringify(" a b c ".split(" ")) === `["","a","","b","c",""]`, ); /* using regex still have problem at the edges */ console.log( JSON.stringify(" a b c ".split(/ +/)) === `["","a","b","c",""]`, ); /* solution is use trim first, then regex */ console.log( JSON.stringify(" a b c ".trim().split(/ +/)) === `["a","b","c"]`, );
Use filter
to remove empty string in array.
〔see Array.prototype.filter〕
Other Example
Split by a character that doesn't exist, return full string
// split by a char that doesn't exist, returns full string console.log(JSON.stringify("abc".split("-")) === `["abc"]`);