substring(indexStart, indexEnd)
substrig()は文字列の一部を抽出するために使います。
引数は2つ。
1つ目の引数は抽出を開始する位置(0から始まるインデックス)、
2つ目の引数は抽出を終了する位置(指定された位置の文字は含まない)
基本的な使い方
let str = "Hello, world!";
let result = str.substring(0, 5);
console.log(result); // "Hello"
indexEndを省略
indexEndを省略すると、指定した開始位置から文字列の末尾までを抽出します。
let str = "Hello, world!";
let result = str.substring(7);
console.log(result); // "world!"
負のインデックス
負のインデックスは0とみなされます。
let str = "Hello, world!";
let result = str.substring(-3, 5);
console.log(result); // "Hello"(負のインデックスは0とみなされる)
substring()の便利な使い方
特定の文字列以降を抽出
let str = "user@example.com";
let domain = str.substring(str.indexOf('@') + 1);
console.log(domain); // "example.com"
日付文字
let dateStr = "2024-05-27";
let year = dateStr.substring(0, 4);
let month = dateStr.substring(5, 7);
let day = dateStr.substring(8, 10);
console.log(year); // "2024"
console.log(month); // "05"
console.log(day); // "27"
苗字と名前を分けて抽出
let str = "John Doe";
let firstName = str.substring(0, str.indexOf(' '));
let lastName = str.substring(str.indexOf(' ') + 1);
console.log(firstName); // "John"
console.log(lastName); // "Doe"
ファイル拡張子の抽出
let fileName = "document.pdf";
let extension = fileName.substring(fileName.lastIndexOf('.') + 1);
console.log(extension); // "pdf"
slice(startIndex, endIndex)
slice()は負のインデックスをサポートしています。
また、substring()は文字列のみを扱いますが、
slice()は文字列に加えて配列の抽出も可能です。
slice()の配列の扱い方についてはこちら↓
1つ目の引数は抽出を開始する位置(0から始まるインデックス)、
2つ目の引数は抽出を終了する位置(指定された位置の文字は含まない)で、省略すると文字列の末尾まで抽出。
負のインデックス
負のインデックスは、末尾からの位置を指定します。
let str = "The quick brown fox jumps over the lazy dog";
let slicedStr = str.slice(-8); // 最後の8文字を抽出
console.log(slicedStr); // "lazy dog"
indexOf(searchValue, fromIndex)
- searchValue : 検索する文字列や文字
- fromIndex : 検索を開始する位置。省略すると、文字列の先頭から検索。
文字列が見つかる場合
let str = "Hello, world!";
let index = str.indexOf('world');
console.log(index); // 7 ("world"はインデックス7から始まります。)
文字列が見つからない場合
let str = "Hello, world!";
let index = str.indexOf('JavaScript');
console.log(index); // -1("JavaScript"は"Hello, world!"には含まれていないため、-1が返されます。)
検索開始位置を指定する場合
let str = "Hello, world!";
let index = str.indexOf('o', 5);
console.log(index); // 8(インデックス5から検索を開始すると、最初の'o'はインデックス8にあります。)
条件文での使用例
“world”が文字列内に存在するかどうかをチェックし、存在する場合にはメッセージを表示します。
let str = "Hello, world!";
if (str.indexOf('world') !== -1) {
console.log('The word "world" is found in the string.');
} else {
console.log('The word "world" is not found in the string.');
}
配列での使用例
“banana”が配列内に存在するかどうかをチェックします。
let fruits = ["apple", "banana", "mango"];
if (fruits.indexOf("banana") !== -1) {
console.log("Banana is in the list.");
} else {
console.log("Banana is not in the list.");
}
大文字と小文字を区別
let str = "Hello, world!";
let index = str.indexOf('World');
console.log(index); // -1 (大文字の'W'と小文字の'w'は異なる)
部分文字列の検索にはincludes()も使えます。
includes(valueToFind, fromIndex)
- valueToFind : 検索する要素
- fromIndex : 検索を開始する位置。省略すると、デフォルトは
0
です。負のインデックスは末尾からの位置を指す。
配列も扱えます。
let array = [1, 2, 3, 4, 5];
console.log(array.includes(3)); // true
console.log(array.includes(6)); // false
// 指定した位置から検索
console.log(array.includes(3, 3)); // false
console.log(array.includes(4, 3)); // true
// 負のインデックス
console.log(array.includes(2, -4)); // true
console.log(array.includes(2, -1)); // false
大文字と小文字を区別
includes()は大文字と小文字を区別します。
let str = "Hello, World!";
console.log(str.includes("world")); // false
厳密な等価性
includes()は厳密な等価性(===
)を使用して要素を比較します。
let array = [1, '1', true, null];
console.log(array.includes(1)); // true
console.log(array.includes('1')); // true
console.log(array.includes(true)); // true
console.log(array.includes(false));// false