初心者向け:分割(split)の基本
split は「文字列を区切り文字で分けて、配列にする」メソッドです。テキストを部品に分解して扱いたいときの第一候補です。
基本の使い方
const s = "red,green,blue";
const arr = s.split(","); // ["red","green","blue"]
JavaScript- 対象: 文字列に対して使う(配列ではない)
- 返り値: 区切られた「文字列の配列」
- 区切り文字: 文字列か正規表現を指定
よく使う分割パターン
- カンマ区切り(CSV風):
"apple,banana,orange".split(","); // ["apple","banana","orange"]
JavaScript- スペース区切り(単語へ):
"hello world js".split(" "); // ["hello","world","js"]
JavaScript- 空白をまとめて分割(複数スペースやタブ対応):
"a b\tc".split(/\s+/); // ["a","b","c"]
JavaScript- 行ごとに分割(改行コード対応):
"line1\nline2\r\nline3".split(/\r?\n/); // ["line1","line2","line3"]
JavaScript- 文字ごとに分割(1文字ずつ):
"ABC".split(""); // ["A","B","C"]
JavaScriptlimit(最大個数)と空文字列の扱い
- limit で最大個数を制限できる:
"a,b,c,d".split(",", 2); // ["a","b"]
JavaScript- 末尾の区切りで空文字列ができる:
"a,b,".split(","); // ["a","b",""]
JavaScript- 連続した区切りでも空文字列ができる:
"a,,b".split(","); // ["a","","b"]
JavaScript- 不要な空要素は filter で除去:
"a,,b,".split(",").filter(x => x !== ""); // ["a","b"]
JavaScript分割後の整形(trim・型変換)と組み合わせ
- 前後の空白を削る(trim):
" red , green , blue ".split(",").map(x => x.trim());
// ["red","green","blue"]
JavaScript- 数値へ変換:
"10,20,30".split(",").map(Number); // [10,20,30]
JavaScript- 再結合(join)との往復:
const arr = "a,b,c".split(",");
arr.join(" | "); // "a | b | c"
JavaScript正規表現で柔軟に分割
- 記号のいずれかで分割(カンマ/セミコロン):
"a,b;c".split(/[;,]/); // ["a","b","c"]
JavaScript- 複数の空白をひとまとめに:
"one two\tthree".split(/\s+/); // ["one","two","three"]
JavaScript- 注意:正規表現の特殊文字はエスケープが必要
"a.b.c".split(/\./); // ["a","b","c"](ドットは \.)
JavaScript実用例
- 拡張子以外(ファイル名本体)を取得:
const file = "app.min.js";
const parts = file.split(".");
const base = parts.slice(0, -1).join("."); // "app.min"
const ext = parts.at(-1); // "js"
JavaScript- タグ入力(カンマ区切り)を配列へ、空白除去:
const input = " js, web ,node ";
const tags = input.split(",").map(t => t.trim()).filter(t => t);
JavaScript- URLクエリを簡易パース:
const query = "a=1&b=hello";
const params = Object.fromEntries(
query.split("&").map(pair => pair.split("=").map(decodeURIComponent))
);
// { a: "1", b: "hello" }
JavaScript- 複数行テキストから非空行だけ抽出:
const text = "line1\n\nline3";
const lines = text.split(/\r?\n/).filter(l => l.trim() !== "");
// ["line1","line3"]
JavaScriptよくあるつまずきと注意点
- Label: CSVの本格対応(引用符やエスケープ)は split だけでは不十分。ライブラリの利用を検討。
- Label: ” ” で分割すると連続空白で空要素ができる。空白の塊には
\s+を使う。 - Label: 正規表現の特殊文字(. * + ? ^ $ { } ( ) | [ ] \)はエスケープ必須。
- Label: 絵文字などを「見た目の1文字」単位で扱うなら
Array.from(str)を検討(split(“”) はコードユニット単位)。
ミニ練習
- 問1: “a,b,c” を配列に分割し、”a | b | c” に再結合せよ。
const s = "a,b,c";
console.log(s.split(",").join(" | "));
JavaScript- 問2: ” red , green,blue ” を分割して空白を除去せよ。
const s = " red , green,blue ";
console.log(s.split(",").map(x => x.trim())); // ["red","green","blue"]
JavaScript- 問3: 複数空白やタブで区切られた文字列 “a b\tc” を単語配列にせよ。
console.log("a b\tc".split(/\s+/)); // ["a","b","c"]
JavaScript- 問4: クエリ “x=10&y=20” を { x: “10”, y: “20” } にせよ。
const q = "x=10&y=20";
const obj = Object.fromEntries(q.split("&").map(p => p.split("=")));
console.log(obj);
JavaScriptまとめ
- split は「文字列を区切って配列にする」基本メソッド。
- 区切りは文字列または正規表現。空白や改行には正規表現が便利。
- limit や空要素の扱いを理解し、必要に応じて trim / filter / map と組み合わせる。
- join と往復すれば、表現変換が簡単にできる。
