String.prototype.startsWith()

startsWith() メソッドは文字列が引数で指定された文字列で始まるかを判定して truefalse を返します。

構文

str.startsWith(searchString[, position])

引数

searchString
文字列の先頭で検索される文字の集合です。
position Optional
searchString を検索し始めるこの文字列の中の位置です。既定値は 0 です。

返値

文字列が指定された文字列で始まる場合は true、それ以外の場合は false です。

解説

文字列が特定の文字列で始まるかどうかを判断できます。(英文字の)大文字・小文字は区別されます。

startsWith() を使う

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

console.log(str.startsWith('To be'));         // true
console.log(str.startsWith('not to be'));     // false
console.log(str.startsWith('not to be', 10)); // true

ポリフィル

このメソッドは ECMAScript 2015 で追加されました。すべてのJavaScriptの実装でまだ利用可能ではないかもしれません。しかしながら、次のコードでString.prototype.startsWith()をエミュレートできます。

if (!String.prototype.startsWith) {
    Object.defineProperty(String.prototype, 'startsWith', {
        value: function(search, rawPos) {
            var pos = rawPos > 0 ? rawPos|0 : 0;
            return this.substring(pos, pos + search.length) === search;
        }
    });
}

少々重いですがより強力 (ES2015に完全準拠) な互換実装を Mathias Bynens が GitHub で公開しています。

仕様書

仕様書 状態 備考
ECMAScript Latest Draft (ECMA-262)
String.prototype.startsWith の定義
ドラフト
ECMAScript 2015 (6th Edition, ECMA-262)
String.prototype.startsWith の定義
標準 初回定義

ブラウザーの互換性

Update compatibility data on GitHub
デスクトップモバイルサーバー
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung InternetNode.js
startsWithChrome 完全対応 41Edge 完全対応 12Firefox 完全対応 17IE 未対応 なしOpera 完全対応 28Safari 完全対応 9WebView Android 完全対応 ありChrome Android 完全対応 36Firefox Android 完全対応 17Opera Android 完全対応 ありSafari 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.

凡例

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

関連情報