String.prototype.endsWith()

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

構文

str.endsWith(searchString[, length])

引数

searchString
検索対象とする文字列です。
length
任意の引数です。指定された場合、str の長さとして使われます。省略した場合は文字列の長さを初期値とします。

戻り値

検索文字列の文字で文字列が終了していた場合、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(search, this_len) {
		if (this_len === undefined || this_len > this.length) {
			this_len = this.length;
		}
		return this.substring(this_len - search.length, this_len) === search;
	};
}

仕様

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

ブラウザー実装状況

Update compatibility data on GitHub
デスクトップモバイルサーバー
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung InternetNode.js
endsWithChrome 完全対応 41Edge 完全対応 12Firefox 完全対応 17IE 未対応 なしOpera 完全対応 28Safari 完全対応 9WebView Android 完全対応 ≤37Chrome Android 完全対応 36Firefox Android 完全対応 17Opera Android 完全対応 24Safari iOS 完全対応 9Samsung Internet Android 完全対応 3.0nodejs 完全対応 4.0.0
完全対応 4.0.0
完全対応 0.12
無効
無効 From version 0.12: this feature is behind the --harmony runtime flag.

凡例

完全対応  
完全対応
未対応  
未対応
ユーザーが明示的にこの機能を有効にしなければなりません。
ユーザーが明示的にこの機能を有効にしなければなりません。

関連情報