文字列の操作とメソッドについて
JavaScriptにおける文字列操作は、テキストデータを扱う上で欠かせない重要な技術です。
文字列は不変のデータ型であり、様々なメソッドを使用して操作や変換を行うことができます。
このセクションでは、文字列の基本操作から高度なメソッドまでを詳しく説明します。
文字列の基本
文字列は、一連の文字のシーケンスです。
文字列リテラルは、シングルクォート '
、ダブルクォート "
、
またはバッククォート `
を使って定義します。
文字列リテラルの例
let singleQuoteStr = 'Hello, World!';
let doubleQuoteStr = "Hello, World!";
let backTickStr = `Hello, World!`;
文字列の操作
文字列の結合
文字列を結合する方法はいくつかあります。
最も一般的なのはプラス +
演算子を使う方法です。
使用例
let greeting = "Hello, " + "World!";
console.log(greeting); // "Hello, World!"
テンプレートリテラル
バッククォート `
を使ったテンプレートリテラルは、
変数や式を埋め込むことができる強力な方法です。
使用例
let name = "Alice";
let greeting = `Hello, ${name}!`;
console.log(greeting); // "Hello, Alice!"
文字列のメソッド
JavaScriptには、文字列を操作するための多くのメソッドが用意されています。
ここでは主要なメソッドを紹介します。
length
length
プロパティは、文字列の長さ(文字数)を返します。
使用例
let str = "Hello, World!";
console.log(str.length); // 13
charAt
charAt
メソッドは、指定したインデックスにある文字を返します。
使用例
let str = "Hello, World!";
console.log(str.charAt(0)); // "H"
console.log(str.charAt(7)); // "W"
charCodeAt
charCodeAt
メソッドは、指定したインデックスの文字のUnicode値を返します。
使用例
let str = "Hello, World!";
console.log(str.charCodeAt(0)); // 72
console.log(str.charCodeAt(7)); // 87
indexOf
indexOf
メソッドは、指定した文字列が最初に現れるインデックスを返します。
見つからない場合は -1
を返します。
使用例
let str = "Hello, World!";
console.log(str.indexOf("World")); // 7
console.log(str.indexOf("world")); // -1
lastIndexOf
lastIndexOf
メソッドは、指定した文字列が最後に現れるインデックスを返します。
見つからない場合は -1
を返します。
使用例
let str = "Hello, World! World!";
console.log(str.lastIndexOf("World")); // 14
includes
includes
メソッドは、指定した文字列が含まれているかどうかをチェックし、true
または false
を返します。
使用例
let str = "Hello, World!";
console.log(str.includes("World")); // true
console.log(str.includes("world")); // false
startsWith
startsWith
メソッドは、文字列が指定した文字列で始まるかどうかをチェックし、true
または false
を返します。
使用例
let str = "Hello, World!";
console.log(str.startsWith("Hello")); // true
console.log(str.startsWith("World")); // false
endsWith
endsWith
メソッドは、文字列が指定した文字列で終わるかどうかをチェックし、true
または false
を返します。
使用例
let str = "Hello, World!";
console.log(str.endsWith("World!")); // true
console.log(str.endsWith("Hello")); // false
文字列の操作と変換
slice
slice
メソッドは、文字列の一部を抽出し、新しい文字列を返します。
元の文字列は変更されません。
使用例
let str = "Hello, World!";
let slicedStr = str.slice(7, 12);
console.log(slicedStr); // "World"
substring
substring
メソッドは、slice
と似ていますが、負のインデックスをサポートしていません。
使用例
let str = "Hello, World!";
let substr = str.substring(7, 12);
console.log(substr); // "World"
substr
substr
メソッドは、指定した位置から指定した数の文字を抽出します。
使用例
let str = "Hello, World!";
let substr = str.substr(7, 5);
console.log(substr); // "World"
replace
replace
メソッドは、指定した文字列または正規表現に一致する部分を新しい文字列に置換します。
使用例
let str = "Hello, World!";
let newStr = str.replace("World", "JavaScript");
console.log(newStr); // "Hello, JavaScript!"
toUpperCase
と toLowerCase
toUpperCase
メソッドは、文字列をすべて大文字に変換します。toLowerCase
メソッドは、文字列をすべて小文字に変換します。
使用例
let str = "Hello, World!";
console.log(str.toUpperCase()); // "HELLO, WORLD!"
console.log(str.toLowerCase()); // "hello, world!"
trim
trim
メソッドは、文字列の先頭と末尾の空白を削除します。
使用例
let str = " Hello, World! ";
console.log(str.trim()); // "Hello, World!"
split
split
メソッドは、文字列を指定した区切り文字で分割し、配列として返します。
使用例
let str = "Hello, World!";
let words = str.split(", ");
console.log(words); // ["Hello", "World!"]
正規表現を使った文字列操作
正規表現を使用すると、パターンに基づいた文字列の検索、置換、抽出が可能です。
match
match
メソッドは、正規表現に一致する部分を検索し、配列として返します。
使用例
let str = "Hello, World!";
let result = str.match(/o/g);
console.log(result); // ["o", "o"]
search
search
メソッドは、正規表現に一致する部分のインデックスを返します。
見つからない場合は -1
を返します。
使用例
let str = "Hello, World!";
let index = str.search(/World/);
console.log(index); // 7
replace
(正規表現対応)
replace
メソッドは、正規表現を使って一致する部分を新しい文字列に置換します。
使用例
let str = "Hello, World!";
let newStr = str.replace(/World/, "JavaScript");
console.log(newStr); // "Hello, JavaScript!"
文字列の比較
localeCompare
localeCompare
メソッドは、文字列をロケールに基づいて比較し、順序を示す数値を返します。
使用例
let str1 = "apple";
let str2 = "banana";
console.log(str1.localeCompare(str2)); // -1 (str1がstr2の前にくる場合)
文字列テンプレートリテラルの高度な使用
テンプレートリテラルを使用すると、複雑な文字列を簡単に作成できます。
変数や式を埋め込むだけでなく、関数呼び出しも可能です。
使用例
let name = "Alice";
let age = 30;
let greeting = `Hello, my name is ${name} and I am ${age} years old.`;
console.log(greeting); // "Hello, my name is Alice and I am 30 years old."
function upper(s) {
return s.toUpperCase();
}
let shout = `Hey, ${upper("you")}!`;
console.log(shout); // "Hey, YOU!"
国際化とロケール固有の操作
toLocaleString
toLocaleString
メソッドは、ロケールに基づいて数値や日付を文字列に変換します。
使用例
let number = 123456.789;
console.log(number.toLocaleString("de-DE")); // "123.456,789" (ドイツの形式)
Intl
オブジェクト
Intl
オブジェクトは、国際化対応の文字列比較、数値書式設定、日付時刻書式設定を提供します。
使用例(Intl.DateTimeFormat
)
let date = new Date();
let formatter = new Intl.DateTimeFormat("en-US", {
year: "numeric",
month: "long",
day: "numeric"
});
console.log(formatter.format(date)); // "July 4, 2024"
使用例(Intl.NumberFormat
)
let number = 123456.789;
let numberFormatter = new Intl.NumberFormat("de-DE");
console.log(numberFormatter.format(number)); // "123.456,79"
文字列操作のベストプラクティス
不変性の理解
文字列は不変であるため、文字列操作は常に新しい文字列を生成します。
この特性を理解することで、効率的なコードを書くことができます。
使用例
let str = "Hello";
str += ", World!";
console.log(str); // "Hello, World!"
大文字と小文字の区別
文字列比較や検索では、大文字と小文字を区別する場合が多いです。
この点を考慮して操作を行います。
使用例
let str = "Hello, World!";
console.log(str.includes("hello")); // false
console.log(str.toLowerCase().includes("hello")); // true
まとめ
JavaScriptの文字列操作は、様々なメソッドとテクニックを駆使して行われます。
基本的な操作から高度な操作までを理解し、適切に活用することで、
テキストデータの管理や処理を効率的に行うことができます。
テンプレートリテラル、正規表現、国際化対応のメソッドなどを活用し、
文字列操作のスキルを高めることで、より複雑なアプリケーションにも対応できるようになります。
これらの知識を活用して、実際のプロジェクトで文字列操作を効果的に行いましょう。
JavaScriptの変数とデータ型について
2月 26, 2025高度な配列メソッド:map, filter, reduce
8月 20, 2024モジュールとインポート/エクスポートについて
8月 17, 2024