.split()

Stringオブジェクトを部分文字列で分けることによって、文字列の配列に分割します。

文法

str.split([separator][, limit])
引数 説明
separator 文字列の区切りに使用する文字(複数可)を指定します。 separatorには文字列、または正規表現を使用することが可能です。 separatorが省略されると、文字列全体が1つの要素に含まれた配列が返されます。 separatorが空文字の場合、strは1文字毎の配列に変換されます。
limit 分割の上限数を整数で指定します。 splitメソッドはseparatorの各マッチを分割しますが、 limitで指定した数の要素までを取得し、それ以外は切り捨てます。

説明

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

separatorが見つかると、separatorは文字列から削除され、 部分文字列が入れられた配列が返されます。 separatorを省略すると、返される配列は文字列全体を含めた1つの要素になります。 separatorが空文字列の場合、strは文字毎の配列に変換されます。

もし、separatorが丸括弧を含む正規表現である場合、 separatorがマッチする度に、その丸括弧の結果(undefinedの結果を含む)を配列の要素として追加していきます。 ですが、全てのブラウザがのこの機能をサポートしているわけではありません。

注意: 文字列が空である場合、splitは空の配列を返すのでは無く、1つの空文字を含む配列を返します。

splitの使用例

下記の例は、特定の区切り(separator)を使用して文字列を分割し、文字列の配列にする関数を定義しています。 文字列を分割した後この関数は、元の文字列(分割される前の)、使用した区切り文字、配列内の要素数、 それぞれの配列要素を示すメッセージを表示します。

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 /

例: 文字列から空白を削除

下記の例は、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つ目の行は結果の配列を出力しています。

Harry Trump ;Fred Barney; Helen Rigby ; Bill Abel ;Chris Hand
Harry Trump,Fred Barney,Helen Rigby,Bill Abel,Chris Hand

例: 分割数の制限

var myString = "Hello World. How are you doing?";
var splits = myString.split(" ", 3);

print(splits);

このスクリプトは、次のように出力されます。

Hello,World.,How

例: 丸括弧の使用

もし区切りが丸括弧を含む正規表現の場合、マッチした結果の箇所で区切られた配列として返されます。

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

print(splits);

このスクリプトは、下記のように出力されます。

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

仕様

ブラウザ互換性

デスクトップ
機能 Chrome Firefox
(Gecko)
IE Opera Safari
基本
モバイル
機能 Android Chrome for
Android
Firefox
Mobile
IE
Mobile
Opera
Mobile
Safari
Mobile
基本

関連項目

 Back to top

© 2017 Mozilla Contributors
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.

このページは、ページトップのURL先のMozilla Developer Network(以下、MDN)のコンテンツを翻訳した内容を基に構成されています。 構成について異なる点も含まれますので、下記の項目を確認し、必要に応じて元のコンテンツをご確認ください。 もし、誤訳などの間違いを見つけましたら、 @tomofまで教えていただければ幸いです。

  • 特定のブラウザに特化しすぎている情報やあまりにも古い情報、 または試験的に導入されているようなAPIや機能については、省略していることがあります。
  • 例やデモについて、実際にページ内で動作させる関係で一部ソースコードを変更している場合や、 その例で使用しているコンテンツの単語や文章などを日本人向けに変更しいてる場合があります。
  • MDNの更新頻度が高いため、元のコンテンツと比べ情報が古くなっている可能性があります。
  • "訳注:"などの断わりを入れた上で、日本人向けの情報の追記を行っている事があります。