String.split

概要

文字列を複数の部分文字列に区切ることにより、String オブジェクトを文字列の配列に分割します。

String のメソッド
実装されたバージョン JavaScript 1.1
ECMAScript エディション ECMA-262 (区切りが文字列である場合)
ECMA-262, Edition 3 (区切りが正規表現である場合)

構文

var splits = str.split([separator][, limit]);

引数

separator
文字列を区切ることに使用するための文字を指定します。separator は文字列、もしくは、正規表現 として扱われます。separator が省略された場合、返る配列は文字列全体から成る 1 つの要素を含みます。
limit
見つかった分割結果の数の制限を指定する整数

詳細

split メソッドは、新しい配列を返します。

split メソッドが新しい配列を文字列から取り出すとき、separator は文字列から削除され、部分文字列から成る配列が返ります。separator が省略された場合、その配列は 文字列全体から成る 1 つの要素を含みます。

separator が、キャプチャする括弧を含む正規表現だった場合、マッチしたキャプチャする括弧の結果(任意の undefined となった結果を含む)である各回の区切りが出力配列に結合されます。

注: 文字列が空であるとき、split メソッドは、空の配列ではなく、1 つの空文字列を含む配列を返します。

例: split メソッドの使用

以下の例は、指定された区切りを使って、文字列を文字列の配列に分割する関数を定義します。文字列を分割した後、その関数は元の文字列(分割する前)、使用した区切り、配列中の要素の数、そして、個々の配列要素を示すメッセージを表示します。

function splitString (stringToSplit,separator) {
 var arrayOfStrings = stringToSplit.split(separator);

 print('元の文字列: "' + stringToSplit + '"');
 print('区切り: "' + separator + '"');
 print("配列は " + 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 ";

print(names);

var re = /\s*;\s*/;
var nameList = names.split (re);

print(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);

print(splits);

このスクリプトは以下の例を出力します。

Hello, World., How

例:キャプチャする括弧

separator がキャプチャする括弧を含む場合、マッチした結果が戻り値の配列に含まれます。

var myString = "Hello 1 word. Sentence number 2.";
var splits = myString.split(/(\d)/);

print(splits);

このスクリプトは、以下を表示します。

Hello , 1,  word. Sentence number , 2, .

関連情報

Document Tags and Contributors

Contributors to this page: Shoot, Potappo, ethertank, Mgjbot
最終更新者: ethertank,