javascript-syntax-Fehler: Ungültiger regulärer Ausdruck
Ich Schreibe eine Anwendung in javascript. In meiner Anwendung gibt es eine option, um nach einem string/regex. Das problem ist match gibt javascript-Fehler, wenn der Benutzer Arten, falschen Wert.
Beispiel-code:
function myFunction() {
var filter = $("#text_id").val();
var query = "select * from table";
var found;
if (query.match(filter) != -1) {
found = true;
}
else{
found = false;
}
//Do something
}
jsfiddle: http://jsfiddle.net/ZVNMq/
Geben Sie die Zeichenfolge ein: sel/\
Match zurück js-Fehler - Uncaught SyntaxError: Invalid regular expression: /sel\/: \ at end of pattern.
Gibt es eine Möglichkeit zu überprüfen, ob der string gültige regex oder nicht?
try catch
ist der Schnellste und schmerzfreie Art und Weise.zu beachten nhahtdh Rat wäre eine gute Idee in jedem Fall. in Ihrer spezifischen situation, die Sie haben zu entkommen das escape-symbol `. generell sollten Sie die Flucht alle Zeichen, die eine Besondere Bedeutung in einem regexp-wenn Sie erlauben, nicht überprüfte Benutzer die Eingabe des Musters. wenn Sie nur zufällig speichern der Daten in der dom-Knoten werden Sie wahrscheinlich bekommen, auch ohne den zusätzlichen Aufwand.
InformationsquelleAutor Sandy | 2013-04-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie einen try-catch-Anweisung:
InformationsquelleAutor Bergi
In diesem Fall, dass Sie nicht wirklich brauchen, reguläre Ausdrücke, aber wenn Sie möchten, vermeiden Sie ungültige Zeichen im Ausdruck sollten Sie entwischen:
Verwendung:
Ohne eines regulären Ausdrucks könnten Sie dies getan haben:
InformationsquelleAutor Ja͢ck
Vielleicht sollten Sie versuchen, die Flucht des Schrägstriche auf einer Zeile vor dem "var query".
Wenn Sie möchten suchen Sie einen string ein slash in regex, muss es maskiert werden oder regex gelesen wird es wie ein reserviertes Zeichen.
InformationsquelleAutor strakez