includes()
メソッドは、1 つの文字列を別の文字列の中に見出すことができるかどうかを判断し、必要に応じて true
か false
を返します。
構文
str.includes(searchString[, position])
引数
searchString
- この String 内で検索される文字列。
position
- 任意。
searchString
を検索し始めるこの String 内の位置。デフォルトは 0 です。
戻り値
文字列が検索値を含む場合、true
。含まなければ、false
。
説明
このメソッドによってある文字列内に別の文字列を含んでいるかどうか判断できます。
大文字小文字の区別
includes()
メソッドは大文字と小文字が区別します。例えば、次のコードでは false を返します:
'Blue Whale'.includes('blue'); // returns false
例
例: includes()
を使う
var str = 'To be, or not to be, that is the question.'; console.log(str.includes('To be')); // true console.log(str.includes('question')); // true console.log(str.includes('nonexistent')); // false console.log(str.includes('To be', 1)); // false console.log(str.includes('TO BE')); // false
互換性
このメソッドは ECMAScript 第 6 版に追加されました。まだ、すべての JavaScript の実装で利用できるとは限りません。しかしながら、このメソッドを簡単にエミュレートできます:
if (!String.prototype.includes) { String.prototype.includes = function(search, start) { 'use strict'; if (typeof start !== 'number') { start = 0; } if (start + search.length > this.length) { return false; } else { return this.indexOf(search, start) !== -1; } }; }
仕様
仕様 | 状況 | コメント |
---|---|---|
ECMAScript 2015 (6th Edition, ECMA-262) String.prototype.includes の定義 |
標準 | 初期定義。 |
ECMAScript 2017 Draft (ECMA-262) String.prototype.includes の定義 |
ドラフト |
ブラウザ実装状況
機能 | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
基本サポート | 41 | 40 (40) | 未サポート | 未サポート | 9 |
機能 | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
基本サポート | 未サポート | 未サポート | 40.0 (40) | 未サポート | 未サポート | 未サポート |
String.prototype.contains
Firefox 18 - 39 では、このメソッドの名称は contains()
でした。バグ 1102219 で includes()
に名称が変更されました。理由は次のとおりです:
MooTools 1.2 を使用したいくつかの Web サイトは Firefox 17 で壊れたと報告がありました。MooToolsのこのバージョンでは、String.prototype.contains()
が存在するかどうか調べ、存在しない場合は追加します。Firefox 17 でこの関数を紹介して、そのチェックの動作が壊れる MooTools の String.prototype.contains()
の実装に基づいたコードの原因となる方法で変更されました。結果として、この変更は Firefox 17 で無効になりました。MooTools への働きかけで MooTools 1.2.6 リリースが出され、String.prototype.contains()
は Firefox 18 以降で利用可能となりました。
MooTools 1.3 では String.prototype.contains()
の自身のバージョンに強要しました。そのため、これに依存する Web サイトは壊れませんでした。しかしながら、このメソッドに対する MooTools 1.3 シグニチャー と ECMAScript 6 シグニチャーでは(第 2 引数に)違いがあることに注意して下さい。MooTools 1.5+ は ES6 仕様に一致させるためにシグニチャーを変更しました。
Firefox 48 で、String.prototype.contains()
は削除されました。String.prototype.includes()
だけ使用できます。