JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

【JavaScript】文字列が指定した文字列で終わっているかどうかを判定する方法

文字列の末尾一致を判定するJavaScript関数

今回は、2つの文字列(str1 と str2)を引数として受け取り、str1 の末尾が str2 と一致しているかどうかを判定するJavaScript関数を作成します。判定結果はブール値(true / false)として返します。

たとえば、次のような2つの文字列を用意してみましょう。

サンプルデータ

1つ目の文字列:

const str1 = 'this is just an example';

2つ目の文字列:

const str2 = 'ample';

コード例

以下が、文字列の末尾一致を判定する関数の実装例です。

const str1 = 'this is just an example';
const str2 = 'ample';

const endsWith = (str1, str2) => {
    // str2 の長さを取得
    const { length } = str2;
    // str1 の長さを取得
    const { length: l } = str1;
    // str1 の末尾から str2 と同じ長さの部分文字列を切り出す
    const sub = str1.substr(l - length, length);
    // 切り出した部分文字列と str2 を比較
    return sub === str2;
};

console.log(endsWith(str1, 'temple'));
console.log(endsWith(str1, str2));

実装のポイント

この関数の仕組みはシンプルです。

手順1: 分割代入を使って、str2 と str1 のそれぞれの文字数(length)を取得します。
手順2: str1 の後ろから str2 と同じ文字数分だけ substr() で切り出します。
手順3: 切り出した部分文字列が str2 と完全に一致するかどうかを === 演算子で比較し、その結果を返します。

なお、モダンなJavaScriptでは String.prototype.endsWith() メソッドを使えば同様の判定を一行で行うこともできます。

console.log(str1.endsWith('temple')); // false
console.log(str1.endsWith('ample'));  // true

出力結果

上記のコードを実行すると、コンソールには以下のように出力されます。

false
true

'temple' は str1 の末尾と一致しないため false、'ample' は「example」の末尾と一致するため true が返されます。

  1. JavaScriptでオブジェクトに特定のプロパティが存在するか確認する方法

    JavaScriptでオブジェクトのプロパティ存在を確認する方法 JavaScriptでは、オブジェクトに特定のプロパティが存在するかどうかを確認したい場面がよくあります。最も基本的な方法は、すべてのオブジェクトが持つhasOwnProperty()メソッドを使用することです。このメソッドは、指定したプロパティがオブジェクト自身に直接定義されている場合にtrueを返し、存在しない場合にはfalseを返します。 hasOwnProperty()メソッドの構文 object.hasOwnProperty(propertyName) propertyName: 存在を確認したいプロパティ名(文字列

  2. JavaScriptでボタンがクリックされたかどうかを判定する方法

    JavaScriptを使えば、ボタンがクリックされたかどうかを簡単に判定できます。最も一般的な方法は、addEventListener()メソッドでクリックイベントを監視することです。以下に、ボタンのクリックを検出し、クリックされた回数を画面に表示するサンプルコードを紹介します。 サンプルコード <!DOCTYPE html> <html lang=en> <head> <meta charset=UTF-8 /> <meta name=viewport content=width=device-width, initial-scale=1