From 1798ea5b03c95402cca3225df1bec5193c564866 Mon Sep 17 00:00:00 2001 From: liwei Date: Thu, 19 Sep 2024 18:31:40 +0800 Subject: [PATCH] fix: DotAll flag with group --- parser/regexp.go | 4 ++++ regexp_test.go | 8 +++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/parser/regexp.go b/parser/regexp.go index 0ea9b9d7..f455d0da 100644 --- a/parser/regexp.go +++ b/parser/regexp.go @@ -194,6 +194,10 @@ func (self *_RegExp_parser) scanGroup() { case '[': self.scanBracket() case '.': + if self.dotAll { + self.pass() + break + } self.writeString(Re2Dot) self.read() default: diff --git a/regexp_test.go b/regexp_test.go index 953db7f5..5c826fcb 100644 --- a/regexp_test.go +++ b/regexp_test.go @@ -718,9 +718,15 @@ func TestRegexpDotAll(t *testing.T) { re.test("\r") && re.test("\n") ` testScript(SCRIPT, valueTrue, t) - } +func TestRegexpDotAllInGroup(t *testing.T) { + const SCRIPT = ` + var re = /(.)/s; + re.test("\r") && re.test("\n") + ` + testScript(SCRIPT, valueTrue, t) +} func TestRegexpNumSeparators(t *testing.T) { const SCRIPT = ` const re = /(?<=a)\u{65}_/u;