Mozilla's getting a new look. What do you think? https://mzl.la/brandsurvey

String.prototype.endsWith()

概要

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

構文

str.endsWith(searchString[, position])

引数

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

説明

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

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

以下のスニペットを用いる事で、 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.indexOf(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) 未サポート 未サポート 未サポート

関連情報

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

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