MDN wants to learn about developers like you: https://qsurvey.mozilla.com/s3/MDN-dev-survey

endsWith() メソッドは、対象の文字列が引数に指定された別の文字列を末尾に持つ文字列であるか否かを示す真偽値を返します。

構文

str.endsWith(searchString[, position])

引数

searchString
検索対象とする文字列
position
任意。文字列が指定した長さであるかのように、文字列内の検索を行います。デフォルト値は文字列の実際の長さであり、指定した長さによって決められる範囲に制限します。

戻り値

検索文字列の文字で文字列が終了していた場合、true。そうでなければ、false

説明

このメソッドは、対象の文字列が引数に指定された別の文字列で終わる文字列であるか否かを判定し、その結果を示す真偽値を返します。このメソッドは、大文字小文字を区別します。

endsWith() を使う

var str = 'To be, or not to be, that is the question.';

console.log(str.endsWith('question.')); // true
console.log(str.endsWith('to be'));     // false
console.log(str.endsWith('to be', 19)); // true

Polyfill

このメソッドは、ECMAScript 6 仕様で追加されたため、すべての JavaScript 実装で実行できるとは限りません。しかし、以下のスニペットを用いる事で、 String.prototype.endsWith() メソッドをエミュレートできます。

if (!String.prototype.endsWith) {
  String.prototype.endsWith = function(searchString, position) {
      var subjectString = this.toString();
      if (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > subjectString.length) {
        position = subjectString.length;
      }
      position -= searchString.length;
      var lastIndex = subjectString.lastIndexOf(searchString, position);
      return lastIndex !== -1 && lastIndex === position;
  };
}

仕様

仕様書 策定状況 コメント
ECMAScript 2015 (6th Edition, ECMA-262)
String.prototype.endsWith の定義
標準 最初期の定義
ECMAScript 2017 Draft (ECMA-262)
String.prototype.endsWith の定義
ドラフト  

ブラウザ実装状況

機能 Chrome Firefox (Gecko) Edge Internet Explorer Opera Safari
基本サポート 41 17 (17) (有) 未サポート 未サポート 9
機能 Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
基本サポート 未サポート 36 17.0 (17) 未サポート 未サポート 未サポート

関連情報

ドキュメントのタグと貢献者

 このページの貢献者: YuichiNukiyama, yyss, teoli, ethertank
 最終更新者: YuichiNukiyama,