The split()
method splits a String
object into an array of strings by separating the string into substrings, using a specified separator string to determine where to make each split.
str.split([separator[, limit]])
Attention: If an empty string ("") is used as the separator, the string is not split between each user-perceived character (grapheme cluster) or between each unicode character (codepoint) but between each UTF-16 codeunit. This destroys surrogate pairs. See also How do you get a string to a character array in JavaScript? on stackoverflow.
separator
Optional
separator
is treated as a string or as a regular expression. If a plain-text separator
contains more than one character, that entire string must be found to represent a split point. If separator
is omitted or does not occur in str
, the array returned contains one element consisting of the entire string. If separator
is an empty string, str
is converted to an array of characters.limit
Optional
Integer specifying a limit on the number of splits to be found. When this parameter is provided, the split()
method splits the string at each occurrence of the specified separator
but stops when limit
entries have been placed into the array. It may still contain fewer entries than limit
if the end of the string is reached before the specified limit is reached. The left-over text is not returned in the new array.
An Array
of strings split at each point where the separator occurs in the given string.
When found, separator
is removed from the string and the substrings are returned in an array. If separator
is not found or is omitted, the array contains one element consisting of the entire string. If separator
is an empty string, str
is converted to an array of characters. If separator
appears at the beginning or end of the string, or both, the array begins, ends, or both begins and ends, respectively, with an empty string. Thus, if the string consists solely of one instance of separator
, the array consists of two empty strings.
If separator
is a regular expression that contains capturing parentheses, then each time separator
is matched, the results (including any undefined results) of the capturing parentheses are spliced into the output array.
split()
returns an array containing one empty string, rather than an empty array. If the string and separator are both empty strings, an empty array is returned.split()
The following example defines a function that splits a string into an array of strings using the specified separator. After splitting the string, the function logs messages indicating the original string (before the split), the separator used, the number of elements in the array, and the individual array elements.
function splitString(stringToSplit, separator) { var arrayOfStrings = stringToSplit.split(separator); console.log('The original string is: "' + stringToSplit + '"'); console.log('The separator is: "' + separator + '"'); console.log('The array has ' + arrayOfStrings.length + ' elements: ' + arrayOfStrings.join(' / ')); } var tempestString = 'Oh brave new world that has such people in it.'; var monthString = 'Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec'; var space = ' '; var comma = ','; splitString(tempestString, space); splitString(tempestString); splitString(monthString, comma);
This example produces the following output:
The original string is: "Oh brave new world that has such people in it." The separator is: " " The array has 10 elements: Oh / brave / new / world / that / has / such / people / in / it. The original string is: "Oh brave new world that has such people in it." The separator is: "undefined" The array has 1 elements: Oh brave new world that has such people in it. The original string is: "Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec" The separator is: "," The array has 12 elements: Jan / Feb / Mar / Apr / May / Jun / Jul / Aug / Sep / Oct / Nov / Dec
In the following example, split()
looks for 0 or more spaces followed by a semicolon followed by 0 or more spaces and, when found, removes the spaces and the semicolon from the string. nameList
is the array returned as a result of split()
.
var names = 'Harry Trump ;Fred Barney; Helen Rigby ; Bill Abel ;Chris Hand '; console.log(names); var re = /\s*(?:;|$)\s*/; var nameList = names.split(re); console.log(nameList);
This logs two lines; the first line logs the original string, and the second line logs the resulting array.
Harry Trump ;Fred Barney; Helen Rigby ; Bill Abel ;Chris Hand [ "Harry Trump", "Fred Barney", "Helen Rigby", "Bill Abel", "Chris Hand", "" ]
In the following example, split()
looks for spaces in a string and returns the first 3 splits that it finds.
var myString = 'Hello World. How are you doing?'; var splits = myString.split(' ', 3); console.log(splits);
This script displays the following:
["Hello", "World.", "How"]
RegExp
to include parts of the separator in the resultIf separator
is a regular expression that contains capturing parentheses (
)
, matched results are included in the array.
var myString = 'Hello 1 word. Sentence number 2.'; var splits = myString.split(/(\d)/); console.log(splits);
This script displays the following:
[ "Hello ", "1", " word. Sentence number ", "2", "." ]
var myString = 'this|is|a|Test'; var splits = myString.split(['|']); console.log(splits); //["this", "is", "a", "Test"] var myString = 'ca,bc,a,bca,bca,bc'; var splits = myString.split(['a','b']); // myString.split(['a','b']) is same as myString.split(String(['a','b'])) console.log(splits); //["c", "c,", "c", "c", "c"]
split()
This is not a robust way to reverse a string:
var str = 'asdfghjkl'; var strReverse = str.split('').reverse().join(''); // 'lkjhgfdsa' // split() returns an array on which reverse() and join() can be applied
It doesn't work if the string contains grapheme clusters, even when using a unicode aware split (use for example esrever instead).
var str = 'résumé'; var strReverse = str.split(/(?:)/u).reverse().join(''); // => "́emuśer"
Bonus: use ===
operator to test if the original string was palindrome.
Specification | Status | Comment |
---|---|---|
ECMAScript 3rd Edition (ECMA-262) | Standard | Initial definition. Implemented in JavaScript 1.1. |
ECMAScript 5.1 (ECMA-262) The definition of 'String.prototype.split' in that specification. | Standard | |
ECMAScript 2015 (6th Edition, ECMA-262) The definition of 'String.prototype.split' in that specification. | Standard | |
ECMAScript Latest Draft (ECMA-262) The definition of 'String.prototype.split' in that specification. | Draft |
Desktop | ||||||
---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | |
Basic support | Yes | Yes | 1 | Yes | Yes | Yes |
Mobile | |||||||
---|---|---|---|---|---|---|---|
Android webview | Chrome for Android | Edge Mobile | Firefox for Android | Opera for Android | iOS Safari | Samsung Internet | |
Basic support | Yes | Yes | Yes | 4 | Yes | Yes | Yes |
Server | |
---|---|
Node.js | |
Basic support | Yes |
String.prototype.charAt()
String.prototype.indexOf()
String.prototype.lastIndexOf()
Array.prototype.join()
© 2005–2018 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/split