JavaScriptのendsWith()解説
JavaScriptのendsWith()について
**endsWith()**は、JavaScriptの文字列メソッドであり、文字列が指定された文字列で終わっているかどうかを判定します。
構文
string.endsWith(searchString, lengthOpt);
- lengthOpt
(オプション) 検査する文字列の最大長。指定しない場合、文字列の全長が使用されます。 - searchString
検査する文字列の末尾に存在するかどうかを判定する文字列。 - string
検査する文字列。
例
const str = "hello world";
// 末尾が "world" であるかどうか
console.log(str.endsWith("world")); // true
// 末尾が "hello" であるかどうか
console.log(str.endsWith("hello")); // false
// 末尾が "world" であるかどうか、最大長を10に設定
console.log(str.endsWith("world", 10)); // true
動作
lengthOpt
が指定されている場合、検査はlengthOpt
文字まで行われます。これにより、部分的な一致を検出することができます。endsWith()
は、searchString
がstring
の末尾と一致するかを検査します。
string.endsWith(searchString, lengthOpt);
コード例
基本的な使用
const str = "hello world";
// 末尾が "world" であるかどうか
console.log(str.endsWith("world")); // true
最大長の指定
const str = "hello world";
// 末尾が "world" であるかどうか、最大長を10に設定
console.log(str.endsWith("world", 10)); // true
部分的な一致の検出
const str = "hello world";
// 末尾が "hello" であるかどうか
console.log(str.endsWith("hello")); // false
複数の文字列の検査
const str = "hello world";
// 末尾が "world" または "hello" であるかどうか
console.log(str.endsWith("world") || str.endsWith("hello")); // true
条件分岐
const str = "hello world";
if (str.endsWith("world")) {
console.log("文字列は 'world' で終わります。");
} else {
console.log("文字列は 'world' で終わらない。");
}
**slice()とlocaleCompare()**の組み合わせ
- **localeCompare()**を使用して、取得した部分を指定された文字列と比較します。
- **slice()**を使用して、文字列の最後の部分を取得します。
const str = "hello world";
const lastPart = str.slice(-5); // " world"
const comparisonResult = lastPart.localeCompare("world");
if (comparisonResult === 0) {
console.log("文字列は 'world' で終わります。");
} else {
console.log("文字列は 'world' で終わらない。");
}
正則表現
- 正則表現を使用して、文字列の末尾に指定された文字列が存在するかを検索します。
const str = "hello world";
const regex = /world$/;
const isMatch = regex.test(str);
if (isMatch) {
console.log("文字列は 'world' で終わります。");
} else {
console.log("文字列は 'world' で終わらない。");
}
カスタム関数
- 文字列の末尾を検査する独自の関数を作成します。
function endsWith(str, searchString) {
const lastIndex = str.length - searchString.length;
return str.indexOf(searchString, lastIndex) !== -1;
}
const str = "hello world";
if (endsWith(str, "world")) {
console.log("文字列は 'world' で終わります。");
} else {
console.log("文字列は 'world' で終わらない。");
}
注意
- カスタム関数は、特定のニーズに合わせて柔軟にカスタマイズできますが、パフォーマンスはendsWith()と同等またはそれ以下になる可能性があります。
- 正則表現を使用する場合、複雑なパターンをマッチングする場合はパフォーマンスが低下する可能性があります。
- **slice()とlocaleCompare()**の組み合わせは、endsWith()よりもパフォーマンスが低下する可能性があります。
javascript string ends-with