Skip to content

Commit fb510b2

Browse files
committed
Added support for scripts.
1 parent 0e1420a commit fb510b2

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

lib/new.cc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,10 @@ static bool translateRegExp(const char *data, size_t size, bool multiline, std::
152152
std::string name(data + i + 3, j - i - 3);
153153
if (unicodeClasses.find(name) != unicodeClasses.end()) {
154154
name = unicodeClasses[name];
155+
} else if (name.starts_with("Script=")) {
156+
name = name.substr(7);
157+
} else if (name.starts_with("sc=")) {
158+
name = name.substr(3);
155159
}
156160
if (name.size() == 1) {
157161
result += name;

tests/test_unicode_classes.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,5 +24,13 @@ unit.add(module, [
2424
re2 = new RE2(/\p{Uppercase_Letter}/u);
2525
eval(t.TEST("re2.test('A') === true"));
2626
eval(t.TEST("re2.test('a') === false"));
27+
28+
re2 = new RE2(/\p{Script=Latin}/u);
29+
eval(t.TEST("re2.test('a') === true"));
30+
eval(t.TEST("re2.test('ф') === false"));
31+
32+
re2 = new RE2(/\p{sc=Cyrillic}/u);
33+
eval(t.TEST("re2.test('a') === false"));
34+
eval(t.TEST("re2.test('ф') === true"));
2735
}
2836
]);

0 commit comments

Comments
 (0)