139 lines
3.8 KiB
JavaScript
139 lines
3.8 KiB
JavaScript
|
// Copyright 2017 the V8 project authors. All rights reserved.
|
||
|
// Use of this source code is governed by a BSD-style license that can be
|
||
|
// found in the LICENSE file.
|
||
|
|
||
|
// Flags: --regexp-mode-modifiers
|
||
|
|
||
|
// These tests won't all run on the noi18n build of V8.
|
||
|
|
||
|
aa(/(a)(?i)\1/u);
|
||
|
aa(/([az])(?i)\1/u);
|
||
|
|
||
|
function aa(re) {
|
||
|
assertTrue(re.test("aa"));
|
||
|
assertTrue(re.test("aA"));
|
||
|
assertFalse(re.test("Aa"));
|
||
|
assertFalse(re.test("AA"));
|
||
|
}
|
||
|
|
||
|
aai(/(a)(?-i)\1/iu);
|
||
|
aai(/([az])(?-i)\1/iu);
|
||
|
|
||
|
function aai(re) {
|
||
|
assertTrue(re.test("aa"));
|
||
|
assertFalse(re.test("aA"));
|
||
|
assertFalse(re.test("Aa"));
|
||
|
assertTrue(re.test("AA"));
|
||
|
}
|
||
|
|
||
|
abcd(/a(b(?i)c)d/u);
|
||
|
abcd(/[aw]([bx](?i)[cy])[dz]/u);
|
||
|
|
||
|
function abcd(re) {
|
||
|
assertTrue(re.test("abcd"));
|
||
|
assertFalse(re.test("abcD"));
|
||
|
assertTrue(re.test("abCd"));
|
||
|
assertFalse(re.test("abCD"));
|
||
|
assertFalse(re.test("aBcd"));
|
||
|
assertFalse(re.test("aBcD"));
|
||
|
assertFalse(re.test("aBCd"));
|
||
|
assertFalse(re.test("aBCD"));
|
||
|
assertFalse(re.test("Abcd"));
|
||
|
assertFalse(re.test("AbcD"));
|
||
|
assertFalse(re.test("AbCd"));
|
||
|
assertFalse(re.test("AbCD"));
|
||
|
assertFalse(re.test("ABcd"));
|
||
|
assertFalse(re.test("ABcD"));
|
||
|
assertFalse(re.test("ABCd"));
|
||
|
assertFalse(re.test("ABCD"));
|
||
|
}
|
||
|
|
||
|
abcdei(/a(b(?-i)c)d/iu);
|
||
|
abcdei(/[aw]([bx](?-i)[cy])[dz]/iu);
|
||
|
|
||
|
function abcdei(re) {
|
||
|
assertTrue(re.test("abcd"));
|
||
|
assertTrue(re.test("abcD"));
|
||
|
assertFalse(re.test("abCd"));
|
||
|
assertFalse(re.test("abCD"));
|
||
|
assertTrue(re.test("aBcd"));
|
||
|
assertTrue(re.test("aBcD"));
|
||
|
assertFalse(re.test("aBCd"));
|
||
|
assertFalse(re.test("aBCD"));
|
||
|
assertTrue(re.test("Abcd"));
|
||
|
assertTrue(re.test("AbcD"));
|
||
|
assertFalse(re.test("AbCd"));
|
||
|
assertFalse(re.test("AbCD"));
|
||
|
assertTrue(re.test("ABcd"));
|
||
|
assertTrue(re.test("ABcD"));
|
||
|
assertFalse(re.test("ABCd"));
|
||
|
assertFalse(re.test("ABCD"));
|
||
|
}
|
||
|
|
||
|
abc(/a(?i:b)c/u);
|
||
|
abc(/[ax](?i:[by])[cz]/u);
|
||
|
|
||
|
function abc(re) {
|
||
|
assertTrue(re.test("abc"));
|
||
|
assertFalse(re.test("abC"));
|
||
|
assertTrue(re.test("aBc"));
|
||
|
assertFalse(re.test("aBC"));
|
||
|
assertFalse(re.test("Abc"));
|
||
|
assertFalse(re.test("AbC"));
|
||
|
assertFalse(re.test("ABc"));
|
||
|
assertFalse(re.test("ABC"));
|
||
|
}
|
||
|
|
||
|
abci(/a(?-i:b)c/iu);
|
||
|
abci(/[ax](?-i:[by])[cz]/iu);
|
||
|
|
||
|
function abci(re) {
|
||
|
assertTrue(re.test("abc"));
|
||
|
assertTrue(re.test("abC"));
|
||
|
assertFalse(re.test("aBc"));
|
||
|
assertFalse(re.test("aBC"));
|
||
|
assertTrue(re.test("Abc"));
|
||
|
assertTrue(re.test("AbC"));
|
||
|
assertFalse(re.test("ABc"));
|
||
|
assertFalse(re.test("ABC"));
|
||
|
}
|
||
|
|
||
|
// The following tests are taken from test/mjsunit/es7/regexp-ui-word.js but
|
||
|
// using inline syntax instead of the global /i flag.
|
||
|
assertTrue(/(?i)\w/u.test('\u017F'));
|
||
|
assertTrue(/(?i)\w/u.test('\u212A'));
|
||
|
assertFalse(/(?i)\W/u.test('\u017F'));
|
||
|
assertFalse(/(?i)\W/u.test('\u212A'));
|
||
|
assertFalse(/(?i)\W/u.test('s'));
|
||
|
assertFalse(/(?i)\W/u.test('S'));
|
||
|
assertFalse(/(?i)\W/u.test('K'));
|
||
|
assertFalse(/(?i)\W/u.test('k'));
|
||
|
|
||
|
assertTrue(/(?i)[\w]/u.test('\u017F'));
|
||
|
assertTrue(/(?i)[\w]/u.test('\u212A'));
|
||
|
assertFalse(/(?i)[\W]/u.test('\u017F'));
|
||
|
assertFalse(/(?i)[\W]/u.test('\u212A'));
|
||
|
assertFalse(/(?i)[\W]/u.test('s'));
|
||
|
assertFalse(/(?i)[\W]/u.test('S'));
|
||
|
assertFalse(/(?i)[\W]/u.test('K'));
|
||
|
assertFalse(/(?i)[\W]/u.test('k'));
|
||
|
|
||
|
assertTrue(/(?i)\b/u.test('\u017F'));
|
||
|
assertFalse(/(?i:)\b/u.test('\u017F'));
|
||
|
assertTrue(/(?i)\b/u.test('\u212A'));
|
||
|
assertFalse(/(?i:)\b/u.test('\u212A'));
|
||
|
assertTrue(/(?i)\b/u.test('s'));
|
||
|
assertTrue(/(?i)\b/u.test('S'));
|
||
|
assertFalse(/(?i)\B/u.test('\u017F'));
|
||
|
assertFalse(/(?i)\B/u.test('\u212A'));
|
||
|
assertFalse(/(?i)\B/u.test('s'));
|
||
|
assertFalse(/(?i)\B/u.test('S'));
|
||
|
assertFalse(/(?i)\B/u.test('K'));
|
||
|
assertFalse(/(?i)\B/u.test('k'));
|
||
|
|
||
|
assertEquals(["abcd\u017F", "\u017F"], /a.*?(.)(?i)\b/u.exec('abcd\u017F cd'));
|
||
|
assertEquals(["abcd\u212A", "\u212A"], /a.*?(.)(?i)\b/u.exec('abcd\u212A cd'));
|
||
|
|
||
|
assertEquals(["a\u017F", "\u017F"], /a.*?(?i:\B)(.)/u.exec('a\u017F '));
|
||
|
assertEquals(["a\u212A", "\u212A"], /a.*?(?i:\B)(.)/u.exec('a\u212A '));
|