JavaScript

最終更新日:
公開日:

レシピ

文字列

文字列を分割する

文字列を特定の文字で区切って分割する方法を解説します。

この記事のポイント

  • 文字列を空白や特定の記号などで分割する
  • 分割する最大数を指定することができる

目次

文字列を特定のワードで分割する

splitメソッドを使うと、文字列を指定したワードで区切って分割した文字列を取得することができます。
ワードの指定方法はベタに文字列を指定する「完全一致」か「正規表現」の2種類から選ぶことができます。

次の例は文字列「I like cat. cat is so pretty.」をスペースによる分割を、完全一致と正規表現それぞれの方法で実行します。

JS コード例

let test = 'I like cat.';

let split_text1 = test.split(' ');
console.log(split_text1); // ["I", "like", "cat."]

let split_text2 = test.split( /[\p{C}\p{Z}]/u);
console.log(split_text2); // ["I", "like", "cat."]

上記の場合、split_text1split_text2はいずれも同じ内容が入り、分割した文字列を配列形式で取得して出力しています。

完全一致は半角スペースのみを分割ワードとして指定しています。

正規表現の方はもう少し複雑な指定となっており、分割ワードに指定している「\p{C}」と「\p{Z}」はUnicodeの文字プロパティです。
\p{C}」は「コントロール文字」「非可視整形用文字」などを含む「その他」の文字、「\p{Z}」は「行区切り文字」「段落区切り文字」「空白文字」などの「区切り文字」を指しています。

これらのUnicodeの文字プロパティを使用するため、フラグ「u」を付けているところもポイントです。
フラグ「u」は検索ワードにUnicodeを使用する明示的な指定になります。

なお、splitメソッドの第1パラメータの分割ワードを省略することも可能です。
省略したときは文字列を最小単位の1文字ずつに分割した配列を取得することができます。

JS コード例

let test = 'I like cat.';

let split_text1 = test.split('');
console.log(split_text1); // ["I", " ", "l", "i", "k", "e", " ", "c", "a", "t", "."]

分割する最大数を指定する

splitメソッドは分割する数の上限を第2パラメータに指定することができます。

JS コード例

let test = 'I like cat.';

let split_text1 = test.split(' ', 2);
console.log(split_text1); // ["I", "like"]

let split_text2 = test.split( /[\p{C}\p{Z}]/u, 1);
console.log(split_text2); // ["I"]

1つ目の完全一致では分割の上限数を2回、正規表現では1回に指定しています。
指定した分割数以上に分割できる場合についても、上限を超えた文字列は戻り値には含まれなくなります。