JavaScript | 基礎構文:文字列操作 – 分割(split)

JavaScript JavaScript
スポンサーリンク

初心者向け:分割(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"]
JavaScript

limit(最大個数)と空文字列の扱い

  • 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 と往復すれば、表現変換が簡単にできる。
タイトルとURLをコピーしました