Get to know MDN better
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2016年9月.
sticky は RegExp インスタンスのアクセサープロパティで、この正規表現に y フラグが使用されているかどうかを返します。
RegExp.prototype.sticky の値が true ならば y フラグが使われており(粘着的正規表現)、そうでなければ false になります。y フラグはこの正規表現が対象の文字列を lastIndex プロパティで示されたインデックスからのみ照合を試みることを示します(そしてグローバル正規表現とは異なり、それ以降のインデックスからの照合は試みません)。
sticky の設定アクセサーは undefined です。このプロパティを直接変更することはできません。
粘着的正規表現とグローバル正規表現の両方の場合は、次のようになります。
ただし、exec() メソッドについては、照合に失敗したときの動作が異なります。
exec() メソッドでは、粘着的かつグローバルな正規表現は、粘着的かつグローバルでない正規表現と同じ動作をします。test() は exec() の単純なラッパーなので、test() はグローバルフラグを無視して同様に粘着的な照合を行います。しかし、他にもグローバル正規表現の挙動を特殊化するメソッドがたくさんあるため、 一般的にはグローバルフラグは粘着フラグと直交します。
Firefox の SpiderMonkey エンジンの一部のバージョンでは ^ 指定に関するバグがあり、 ^ アサーションで始まり、 sticky フラグを使うことで一致しない式を許可していました。このバグは Firefox 3.6 以降で発生し(それ以前は sticky が実装されていてもバグはありませんでした)、2015 年に修正されました。このバグのためか、仕様書では特に注意を促しているという事実があります。
パターンとともに y フラグが使用された場合、 ^ は常に入力の始まりにのみ一致するか、(rer.[[Multiline]] が true の場合)行の先頭に一致するかです。
以下は正しい挙動の例です。
| ECMAScript® 2027 Language Specification # sec-get-regexp.prototype.sticky |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 2025年11月10日 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.