初心者向けにやさしく、実例を交えて split の使い方を丁寧に説明します。コードはそのままブラウザの開発者ツール(Console)や Node.js で試せます。
split の「直感」
split は「ある文字(やパターン)で文字列を切って、切った断片を配列にする」ための道具です。
イメージ:"A,B,C".split(",") → ["A","B","C"]
書き方の基本
文字列.split(区切り文字[, 最大分割回数])
JavaScript- 区切り文字:文字列(例:
",")か正規表現(例:/\s+/)を指定できます。 - 最大分割回数(オプション):配列に入れる要素数の上限を指定します。
よくある使い方(例と解説)
1) カンマで分割(基本)
const s = "apple,banana,grape";
console.log(s.split(",")); // ["apple", "banana", "grape"]
JavaScript説明:, を見つけるたびに切って配列にする。
2) 先頭・末尾に区切り文字がある場合
const s = "/Jan/Feb/Mar/";
console.log(s.split("/"));
// ["", "Jan", "Feb", "Mar", ""]
JavaScript説明:先頭や末尾の "/" の前後の文字列が空文字 "" として配列に入ります。必要なら後で削除できます。
削除方法の例(空要素を取り除く):
s.split("/").filter(Boolean); // ["Jan","Feb","Mar"]
JavaScript3) 空文字 '' を区切りにすると「1文字ずつ」に分割
"abc".split("") // ["a","b","c"]
"".split("") // [] (空文字列を空に分割すると空配列になる)
JavaScript4) 区切りに正規表現を使う(複数の空白をまとめて分割)
const s = "apple banana\tgrape\npear";
console.log(s.split(/\s+/)); // ["apple","banana","grape","pear"]
JavaScript説明:/\s+/ は「連続する空白(スペース、タブ、改行など)」全体を1つの区切りとみなすので、余分な空白に強い。
5) 最大分割回数を使う
const s = "A..B..C..D";
console.log(s.split("..", 2)); // ["A","B"]
console.log(s.split(",", 0)); // [] (上限 0 は空配列)
JavaScript説明:第2引数は「配列に入れる最大要素数」です。指定回数に達すると分割を止めます。
6) キャプチャ付きの正規表現(注意点)
正規表現で丸括弧 () を使ってキャプチャグループを作ると、その キャプチャした部分も配列に含まれる ことがあります:
const s = "a1b2c";
console.log(s.split(/(\d)/)); // ["a","1","b","2","c"]
JavaScript説明:数字 \d をキャプチャしているので、数字そのものも結果に含まれます。不要ならキャプチャを使わない((?: ) の非キャプチャ)か、後でフィルタしてください。
よくある落とし穴(初心者が間違いやすいポイント)
- 区切りを省略すると → 元の文字列が1要素の配列になります。
"abc".split() // ["abc"]
JavaScriptsplit('')とsplit()は違う:前者は文字毎、後者は分割しない。- 先頭/末尾の区切りで空文字が生まれる → 必要なら
.filter(Boolean)などで消す。 - limit(上限)を 0 にすると空配列(
split(',',0)→[])。 - 正規表現のキャプチャに注意(上で説明)。
ちょっと実用的な例
例 A:CSV の行を簡単に分割して配列にする(簡易版)
const line = '1001,"Yamada, Taro",500';
const cols = line.split(',');
// ただしこの方法はダブルクォート内のカンマを正しく扱えない(簡易実装)
console.log(cols);
// ["1001", "\"Yamada", " Taro\"", "500"]
JavaScript説明:CSV はダブルクォートで囲まれたフィールド内にカンマが入ることがあり、単純 split(',') では正しく処理できない。CSV の場合は専用パーサ(ライブラリ)か正規表現で慎重に扱う。
例 B:パス(”/” で区切られた)からファイル名だけ取り出す
const path = "/users/halu/documents/report.pdf";
const parts = path.split("/");
const filename = parts.pop();
console.log(filename); // "report.pdf"
JavaScript例 C:文字列を分割して数値配列にする(数値に変換)
const s = "10,20,30";
const nums = s.split(",").map(x => Number(x));
console.log(nums); // [10, 20, 30]
JavaScript練習問題
"red|green|blue".split("|")の結果は?"/a/b/c/".split("/")の結果は? 空要素を削除した配列を作るにはどうする?"one two three".split(" ")と"one two three".split(/\s+/)の違いは?
答え
["red","green","blue"]["", "a", "b", "c", ""]→...split("/").filter(Boolean)で["a","b","c"]にできる。.split(" ")は単純にスペース一文字ごとに切るので空要素ができやすい。.split(/\s+/)は連続した空白をまとめて扱うので["one","two","three"]になる。
まとめ(覚えておくと便利なポイント)
splitは「区切りで切る」→ 結果は配列。- 区切りに正規表現が使える(強力)。
- 先頭・末尾の区切りは空要素を生む →
filter(Boolean)で除去することが多い。 - CSV のような特殊な形式は単純
splitでは失敗する場合がある(ライブラリ推奨)。 split('')で1文字ごとの配列、split()(引数なし)は分割しない。

