Replizieren Sie die Funktionalität von Javas "Pattern.quote" in einem JavaScript RegExp [duplizieren]

Diese Frage hat hier bereits eine Antwort:

Gibt es eine RegExp.escape-Funktion in Javascript? 12 answers

In Java könnten Sie versuchen, einen regulären Ausdruck zu erstellen, der mit der URL @ übereinstimmstackoverflow.com usingPattern.compile("stackoverflow.com"). Aber das wäre falsch, weil die. hat in regulären Ausdrücken eine besondere Bedeutung. Der einfachste Weg, dies zu beheben, besteht darin, @ zu schreibePattern.compile(Pattern.quote("stackoverflow.com")) was herauskommt:Pattern.compile("\\Qstackoverflow.com\\E") welche "zitiert" den gesamten String.

Ich möchte dasselbe in JavaScript tun, aber die regulären Ausdrücke von JavaScript weisen @ keine Bedeutung z\Q und\E und es sieht nicht so aus, als gäbe es ein JavaScript-Äquivalent, daher bin ich mir nicht sicher, wie ich das machen soll. Mein erster Gedanke (siehe meine Antwort unten) ist es, einfach einen Backslash vor jedes Zeichen zu setzen, das in einer JavaScript-Regex eine besondere Bedeutung hat. Dies scheint jedoch möglicherweise fehleranfällig zu sein, und ich vermute, dass jemand einen besseren Weg kennt.

Dies ist für eine Firefox-Erweiterung vorgesehen, daher sind Mozilla-spezifische Lösungen in Ordnung.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage