Răsfoiți Sursa

Merge pull request #2626 from overleaf/bg-fix-editor-regexps

fix stateful regexp usage in editor inputs

GitOrigin-RevId: 4950066251cb6235e218ff4f600fab2652d15e76
Eric Mc Sween 6 ani în urmă
părinte
comite
5f712645ed
1 a modificat fișierele cu 16 adăugiri și 20 ștergeri
  1. 16 20
      services/web/frontend/js/ide/editor/directives/aceEditor.js

+ 16 - 20
services/web/frontend/js/ide/editor/directives/aceEditor.js

@@ -201,28 +201,24 @@ define([
         // you can modify the input or reject the event with e.preventDefault()
         editor.commands.on('exec', function(e) {
           // replace bad characters in paste content
-          if (
-            e.command &&
-            e.command.name === 'paste' &&
-            e.args &&
-            BAD_CHARS_REGEXP.test(e.args.text)
-          ) {
-            e.args.text = e.args.text.replace(
-              BAD_CHARS_REGEXP,
-              BAD_CHARS_REPLACEMENT_CHAR
-            )
+          if (e.command && e.command.name === 'paste') {
+            BAD_CHARS_REGEXP.lastIndex = 0 // reset stateful regexp for this usage
+            if (e.args && BAD_CHARS_REGEXP.test(e.args.text)) {
+              e.args.text = e.args.text.replace(
+                BAD_CHARS_REGEXP,
+                BAD_CHARS_REPLACEMENT_CHAR
+              )
+            }
           }
           // replace bad characters in keyboard input
-          if (
-            e.command &&
-            e.command.name === 'insertstring' &&
-            e.args &&
-            BAD_CHARS_REGEXP.test(e.args)
-          ) {
-            e.args = e.args.replace(
-              BAD_CHARS_REGEXP,
-              BAD_CHARS_REPLACEMENT_CHAR
-            )
+          if (e.command && e.command.name === 'insertstring') {
+            BAD_CHARS_REGEXP.lastIndex = 0 // reset stateful regexp for this usage
+            if (e.args && BAD_CHARS_REGEXP.test(e.args)) {
+              e.args = e.args.replace(
+                BAD_CHARS_REGEXP,
+                BAD_CHARS_REPLACEMENT_CHAR
+              )
+            }
           }
         })