ECMAScript 2015 (ECMA-262
6th Edition) から既定の String.prototype.includes
の Polyfill(互換コード)を提供します。
(ES6 で作られたメソッドですが、参考にした仕様は ECMAScript 2017 (ES8) になります。)
第一引数に指定した文字列が含まれていたら、true
を返し、含まれなければ false
を返します。
console.log('Hello, World!'.includes('Hello')); // true
第二引数で検索を開始するインデックスを指定することが出来ます。
console.log('Hello, World!'.includes('Hello', 1)); // false (index 0 を飛ばして検索する為、HITしません)
第二引数に指定されるインデックス値は整数化して解釈されます。
console.log('Hello, World!'.includes('World', 7.123)); // true
console.log('Hello, World!'.includes('World', 8.123)); // false
第二引数に負の数が指定された場合、0
が指定された場合と同様に扱われます。
console.log('Hello, World!'.includes('Hello', -1)); // true
第一引数に new RegExp
を指定することは出来ません。
'Hello, World!'.includes(/Hello/); // TypeError: First argument to String.prototype.includes must not be a regular expression
String.prototype.includes
は故意に汎用的ですが、this
値は null
または undefined
であってはなりません。
String.prototype.includes.call(null); // TypeError: String.prototype.includes called on null or undefined