正規表現のyフラグが実装された
概要
文字列の特定の位置からマッチさせたい時にyフラグを用いると、lastIndexの位置からのみマッチするようにできる。
例
var re = /Test/y re.sticky // true re.lastIndex // 0 re.test( 'Test' ) // true re.lastIndex // 4 re.lastIndex = 2 re.test( 'xTest' ) // false re.lastIndex = 2 re.test( 'xyTest' ) // true re.lastIndex = 2 re.test( 'xyzTest' ) // false
注意
このフラグはFirefoxで昔から実装されているが、それとは一部仕様が異なる。
具体的にはFirefoxの仕様では、正規表現中の「^」が文頭の代わりにlastIndexの位置にマッチする。
また、同時にmフラグも指定されている場合は、『lastIndex以降の行頭』の位置にもマッチするようになるが、
ES2015の仕様では文頭のみ、またmフラグも指定されている場合は『lastIndexかつ行頭』の位置にのみマッチする。
var re1 = /^Test/y re1.lastIndex = 2 re1.test('xyTest') // ES2015->false, OldFx->true var re2 = /^Test/my re2.lastIndex = 2 re2.test('xyz\nTest') // ES2015->false, OldFx->true var re3 = /^Test/my re3.lastIndex = 2 re3.test('x\nTest') // ES2015->true, OldFx->true
実装されるバージョン
V8 3.29.81