split()
メソッドは、文字列を複数の部分文字列に区切ることによりString
オブジェクトを文字列の配列に分割します。
構文
str.split([separator[, limit]])
引数
separator
- 任意。文字列を区切ることに使用するための文字を指定します。
separator
は文字列、もしくは regular expression として扱われます。separator
が省略された場合、返る配列は文字列全体から成る 1 つの要素を含みます。separator が空文字の場合、str
は文字の配列に変換されます。 limit
- 任意。見つかった分割結果の数の制限を指定する整数です。
split()
メソッドは、分割した項目数がlimit
に一致するか、 文字列がseparator
に不足するまで、すべてのseparator
のマッチを分割します。
戻り値
与えられた文字列で separator が発生するそれぞれのポイントで分割した文字列配列。
詳細
split
メソッドが新しい配列を文字列から取り出すとき、separator
は文字列から削除され、部分文字列から成る配列が返ります。separator
が省略された場合、その配列は 文字列全体から成る 1 つの要素を含みます。
separator
が、キャプチャする括弧を含む正規表現だった場合、マッチしたキャプチャする括弧の結果(任意の undefined
となった結果を含む)である各回の区切りが出力配列に結合されます。
注: 文字列が空であるとき、split
メソッドは、空の配列ではなく、1 つの空文字列を含む配列を返します。
例
例: split
メソッドの使用
以下の例は、指定された区切りを使って、文字列を文字列の配列に分割する関数を定義します。文字列を分割した後、その関数は元の文字列(分割する前)、使用した区切り、配列中の要素の数、そして、個々の配列要素を示すメッセージを表示します。
function splitString (stringToSplit,separator) { var arrayOfStrings = stringToSplit.split(separator); console.log('元の文字列: "' + stringToSplit + '"'); console.log('区切り: "' + separator + '"'); console.log("配列は " + arrayOfStrings.length + " 要素: "); for (var i = 0; i < arrayOfStrings.length; i++) { print(arrayOfStrings[i] + " / "); } } 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);
これは次のように出力されます。
元の文字列: "Oh brave new world that has such people in it." 区切り: " " 配列は 10 要素: Oh / brave / new / world / that / has / such / people / in / it. / 元の文字列: "Oh brave new world that has such people in it." 区切り: "undefined" 配列は 1 要素: Oh brave new world that has such people in it. / 元の文字列: "Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec" 区切り: "," 配列は 12 要素: Jan / Feb / Mar / Apr / May / Jun / Jul / Aug / Sep / Oct / Nov / Dec /
例: 文字列からの空白の削除
以下の例では、split
メソッドは、 0 回以上の空白とそれに続くセミコロン、それにさらに続く 0 回以上の空白を探し、それらが見つかったとき、文字列から空白を削除します。nameList
は、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);
これは 2 つの行を出力します。 1 行目は元の文字列を出力し、 2 行目は split
メソッドの実行結果の配列を出力します。
Harry Trump ;Fred Barney; Helen Rigby ; Bill Abel ;Chris Hand Harry Trump,Fred Barney,Helen Rigby,Bill Abel,Chris Hand
例: 限られた数の分割結果を返す
以下の例では、split
メソッドは 文字列中の 0 回以上の空白を探し、見つかった最初の 3 つの分割結果を返します。
var myString = "Hello World. How are you doing?";
var splits = myString.split(" ", 3);
console.log(splits);
このスクリプトは以下の例を出力します。
Hello, World., How
例:キャプチャする括弧
separator
がキャプチャする括弧を含む場合、マッチした結果が戻り値の配列に含まれます。
var myString = "Hello 1 word. Sentence number 2."; var splits = myString.split(/(\d)/); console.log(splits);
このスクリプトは、以下を表示します。
Hello , 1, word. Sentence number , 2, .
例:split()
を使用して文字列を反転させる
var str = 'asdfghjkl'; var strReverse = str.split('').reverse().join(''); // 'lkjhgfdsa' // split() returns an array on which reverse() and join() can be applied
ボーナス: オリジナルの文字列が回分の場合、テストのために ===
演算子を使用します。
仕様
仕様 | ステータス | コメント |
---|---|---|
ECMAScript 3rd Edition (ECMA-262) | 標準 | 初期定義。JavaScript 1.1 で実装。 |
ECMAScript 5.1 (ECMA-262) String.prototype.split の定義 |
標準 | |
ECMAScript 2015 (6th Edition, ECMA-262) String.prototype.split の定義 |
標準 | |
ECMAScript 2017 Draft (ECMA-262) String.prototype.split の定義 |
ドラフト |
ブラウザー実装状況
機能 | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
基本サポート | (有) | (有) | (有) | (有) | (有) |
機能 | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
基本サポート | (有) | (有) | (有) | (有) | (有) | (有) |