Преглед изворни кода

fix: DotAll flag with group

liwei пре 1 година
родитељ
комит
97b9a8f699
2 измењених фајлова са 11 додато и 0 уклоњено
  1. 4 0
      parser/regexp.go
  2. 7 0
      regexp_test.go

+ 4 - 0
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:

+ 7 - 0
regexp_test.go

@@ -718,7 +718,14 @@ 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) {