2016-04-30 7 views
9

Ich verwende Regex-Muster, die für HTML5-Formularüberprüfung übereinstimmen. Die neueste Version von Firefox gibt mir einen Fehler. Ich habe das erst in Firefox 46 gesehen. Ich glaube nicht, dass dies ein Problem in früheren Firefox-Versionen war.Firefox-Fehler: Eingabe kann nicht überprüft werden, weil das Muster keine gültige Regexp ist: ungültige Identität Escape in regulärem Ausdruck

Unable to check <input pattern='[\@\%]'> because the pattern is not a valid regexp: invalid identity escape in regular expression

von diesem sehr einfachen Testfall verursacht:

<!DOCTYPE html> 
<html> 
    <head> 
    <meta charset="UTF-8"> 
    </head> 
    <form> 
    <input pattern="[\@\%]"> 
    </form> 
</html> 

Warum diese Zeichen als Fehler betrachtet entweicht? Ich habe immer alles in meinen regulären Ausdrücken gemieden, das ist keine Zahl oder ein Buchstabe. Ich habe nie etwas über diese Art von Escape-Charakter außer dieser Firefox-Version zu meckern.

Als ich Regex lernte, wurde mir gesagt, dass alles, was keine Zahl oder ein Buchstabe war, eine besondere Bedeutung haben könnte. Auch wenn es nicht jetzt ist, könnte es in einer zukünftigen Version, so ist es besser, ihnen zu entkommen. Ist das nicht wahr?

Gibt es eine Liste von Zeichen, die ich für Firefox nicht entkommen lassen sollte?

+0

_sidenote_: - Sie müssen nicht die Zeichen in Zeichenklasse zu entkommen, da sie jede besondere Bedeutung nicht – rock321987

Antwort

4

Dies ist aufgrund folgender Änderung: Bug 1227906 - HTML pattern attribute should set u flag for regular expressions

Wie schon jemand gesagt hat, Sie müssen nicht diese Zeichen entkommen. Verwenden Sie einfach:

<input pattern="[@%]"> 
+0

die [site Kompatibilität doc] Geschrieben haben (https: //www.fxsitecompat. com/de-CA/docs/2016/input-muster-now-sets-u-flag-für-regular-ausdrücken /) dafür. –

+0

Das [verwandte Github-Problem] (https://github.com/whatwg/html/issues/439) wurde ebenfalls wieder geöffnet. – sideshowbarker

+0

Eine Idee, warum Sie diese Zeichen im Unicode-Regex-Modus nicht entkommen können? –

Verwandte Themen