JavaScriptで文字列を特定の文字で分割する方法
JavaScriptで文字列を特定の文字で分割する方法
split()
メソッドは、文字列を分割する最も簡単な方法です。このメソッドは、分割文字を指定して呼び出すことで、文字列をその文字で分割された配列に変換します。
例:
const str = "JavaScript,split,at,particular,character";
const splittedStr = str.split(",");
console.log(splittedStr); // ["JavaScript", "split", "at", "particular", "character"]
正規表現を使って、より複雑な分割を行うこともできます。
const str = "JavaScript:split:at:particular:character";
const splittedStr = str.split(/[:]/);
console.log(splittedStr); // ["JavaScript", "split", "at", "particular", "character"]
上記の例では、:
という文字で分割するために、正規表現 [:]
を使用しています。
reduce()
メソッドを使って、分割と同時に配列を処理することもできます。
const str = "JavaScript-split-at-particular-character";
const splittedStr = str.split("-").reduce((acc, cur) => {
acc.push(cur.charAt(0).toUpperCase() + cur.slice(1));
return acc;
}, []);
console.log(splittedStr); // ["JavaScript", "Split", "At", "Particular", "Character"]
上記の例では、-
という文字で分割し、同時に各要素の先頭文字を大文字に変換しています。
その他の方法
上記以外にも、String.prototype.match()
メソッドや for
ループを使って分割を行う方法もあります。
JavaScriptで文字列を特定の文字で分割するには、いくつかの方法があります。それぞれの方法にはメリットとデメリットがあるので、状況に応じて適切な方法を選択する必要があります。
split() メソッドを使う
// カンマで分割
const str = "JavaScript,split,at,particular,character";
const splittedStr = str.split(",");
console.log(splittedStr); // ["JavaScript", "split", "at", "particular", "character"]
// 空白で分割
const str2 = "JavaScript split at particular character";
const splittedStr2 = str2.split(" ");
console.log(splittedStr2); // ["JavaScript", "split", "at", "particular", "character"]
正規表現を使う
// コロンで分割
const str = "JavaScript:split:at:particular:character";
const splittedStr = str.split(/[:]/);
console.log(splittedStr); // ["JavaScript", "split", "at", "particular", "character"]
// ハイフンと数字で分割
const str2 = "JavaScript-1-2-3-4";
const splittedStr2 = str2.split(/[-0-9]/);
console.log(splittedStr2); // ["JavaScript", "", "", "", ""]
reduce() メソッドを使う
// 文字列を分割し、各要素の先頭文字を大文字に変換
const str = "javascript-split-at-particular-character";
const splittedStr = str.split("-").reduce((acc, cur) => {
acc.push(cur.charAt(0).toUpperCase() + cur.slice(1));
return acc;
}, []);
console.log(splittedStr); // ["JavaScript", "Split", "At", "Particular", "Character"]
その他の方法
String.prototype.match() メソッドを使う
// カンマで分割
const str = "JavaScript,split,at,particular,character";
const matches = str.match(/,/g);
const splittedStr = matches.map(match => match.trim());
console.log(splittedStr); // ["JavaScript", "split", "at", "particular", "character"]
for ループを使う
// 空白で分割
const str = "JavaScript split at particular character";
const splittedStr = [];
let start = 0;
for (let i = 0; i < str.length; i++) {
if (str[i] === " ") {
splittedStr.push(str.substring(start, i));
start = i + 1;
}
}
splittedStr.push(str.substring(start));
console.log(splittedStr); // ["JavaScript", "split", "at", "particular", "character"]
JavaScriptで文字列を特定の文字で分割するその他の方法
String.prototype.replace() メソッドを使う
replace()
メソッドを使って、分割文字を空文字に置き換えることで、文字列を分割することができます。
// カンマで分割
const str = "JavaScript,split,at,particular,character";
const splittedStr = str.replace(/,/g, "");
console.log(splittedStr); // "JavaScript split at particular character"
// コロンで分割
const str = "JavaScript:split:at:particular:character";
const splittedStr = str.split(":");
console.log(splittedStr); // ["JavaScript", "split", "at", "particular", "character"]
// ハイフンで分割
const str2 = "JavaScript-split-at-particular-character";
const splittedStr2 = [];
for (let i = 0; i < str2.length; i++) {
if (str2[i] === "-") {
splittedStr2.push(str2.slice(0, i));
str2 = str2.slice(i + 1);
}
}
splittedStr2.push(str2);
console.log(splittedStr2); // ["JavaScript", "split", "at", "particular", "character"]
第三者ライブラリを使う
Lodashなどの第三者ライブラリには、文字列分割用の便利な関数を提供しているものがあります。
// Lodashを使ってカンマで分割
const _ = require("lodash");
const str = "JavaScript,split,at,particular,character";
const splittedStr = _.split(str, ",");
console.log(splittedStr); // ["JavaScript", "split", "at", "particular", "character"]
javascript split