Frage

Nachdem mein Webformular übermittelt wurde, wird auf der Serverseite (über PHP) ein regulärer Ausdruck auf Benutzereingaben angewendet.Ich möchte, dass der identische reguläre Ausdruck auf der Clientseite in Echtzeit ausgeführt wird, um dem Benutzer zu zeigen, wie die tatsächliche Eingabe aussehen wird.Dies entspricht im Wesentlichen dem Abschnitt „Vorschau“ auf den Seiten „Fragen stellen“ auf Stack Overflow, außer dass PHP im Back-End anstelle von .NET verwendet wird.

Was muss ich beachten, damit sich meine regulären PHP- und JavaScript-Ausdrücke genau gleich verhalten?

War es hilfreich?

Lösung

Hehe, das wurde vor wenigen Augenblicken sozusagen gefragt und Jeff wies darauf hin:
http://www.regular-expressions.info/refflavors.html.

Es gibt einen Vergleich der Funktionen regulärer Ausdrücke verschiedener Tools und Sprachen.

Andere Tipps

Wenn die regulären Ausdrücke einfach sind, sollte es kein Problem geben, da die Grundlagen regulärer Ausdrücke in den meisten Implementierungen gleich sind.

Für Einzelheiten wäre es dann am besten, beide Implementierungen zu studieren:

http://www.regular-expressions.info/php.html

http://www.regular-expressions.info/javascript.html

Die Javascript-Implementierung ist wahrscheinlich die grundlegendere. Wenn Sie sich also für einen Ansatz mit dem kleinsten gemeinsamen Nenner entscheiden, sollten Sie diesen anstreben.

Ich habe festgestellt, dass verschiedene Implementierungen regulärer Ausdrücke oft subtile Unterschiede darin aufweisen, was genau sie unterstützen.Wenn Sie ganz sicher sein möchten, dass das Ergebnis sowohl im Frontend als auch im Backend gleich ist, wäre es am sichersten, einen Ajax-Aufruf an Ihr PHP-Backend durchzuführen und für beide Regex-Auswertungen denselben PHP-Code zu verwenden.

@LKM AJAX ist hier der klare Gewinner.Dies ermöglicht Ihnen auch, dem zu folgen TROCKEN Prinzip.Warum sollten Sie Ihren Parsing-Code in Javascript schreiben wollen? Und PHP?

Sowohl der reguläre Ausdruck von JavaScript als auch der preg_match von PHP basieren auf Perl, daher sollte es keine Portierungsprobleme geben.Beachten Sie jedoch, dass Javascript nur eine Teilmenge der Modifikatoren unterstützt, die auch Perl unterstützt.

Weitere Informationen zum Vergleich der beiden:

Was die Versandart angeht, würde ich Ihnen vorschlagen, diese zu verwenden JSON, das derzeit schlankste Datenaustauschformat (AFAIK) und über eval() direkt in ein JavaScript-Objekt übersetzbar.Lass den bösen Jungen einfach durchmachen AJAX Sitzung und Sie sollten startklar sein.

Ich hoffe das hilft :)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top