最終更新日:
公開日:
レシピ
文字列
文字列を分割する
文字列を特定の文字で区切って分割する方法を解説します。
この記事のポイント
- 文字列を空白や特定の記号などで分割する
- 分割する最大数を指定することができる
目次
文字列を特定のワードで分割する
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_text1とsplit_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回に指定しています。
指定した分割数以上に分割できる場合についても、上限を超えた文字列は戻り値には含まれなくなります。