Erstellen einer JavaScript-Regex, die einer PHP-Regex entspricht

8

Nachdem mein Webformular übergeben wurde, wird ein Regex auf die Benutzereingabe auf der Serverseite angewendet (über PHP). Ich möchte den identischen Regex in Echtzeit auf der Client-Seite laufen lassen, um dem Benutzer zu zeigen, was die wirkliche Eingabe sein wird. Dies entspricht in etwa dem Abschnitt "Vorschau" auf der Seite "Fragen stellen" in Stack Overflow, mit Ausnahme von PHP anstelle von .NET im Backend.

Was muss ich beachten, damit meine regulären Ausdrücke für PHP und JavaScript genau gleich funktionieren?

    
Dinah 27.08.2008, 13:36
quelle

5 Antworten

10

Hehe das wurde vor einiger Zeit gefragt und Jeff hat darauf hingewiesen: Ссылка .

>

Es gibt einen Vergleich der Funktionen für reguläre Ausdrücke zwischen Tools und Sprachen.

    
Joseph Pecoraro 27.08.2008, 13:39
quelle
3

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

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

Ссылка

Ссылка

Die Implementierung von Javascripts ist wahrscheinlich die grundlegendere. Wenn Sie also einen Ansatz mit dem kleinsten gemeinsamen Nenner anstreben, dann zielen Sie auf diesen.

    
samjudson 27.08.2008 13:41
quelle
1

Ich habe festgestellt, dass verschiedene Implementierungen regulärer Ausdrücke oft feine Unterschiede darin haben, was genau sie unterstützen. Wenn Sie sicher sein wollen, dass das Ergebnis sowohl im Frontend als auch im Backend das gleiche ist, sollten Sie einen Ajax-Aufruf an Ihr PHP-Backend richten und für beide Regex-Auswertungen den gleichen PHP-Code verwenden.

>     
LKM 27.08.2008 13:41
quelle
1

@LKM AJAX ist hier der klare Gewinner. Dadurch können Sie auch dem DRY -Prinzip folgen. Warum sollten Sie Ihren Parsing-Code in Javascript und PHP schreiben?

    
pix0r 27.08.2008 14:57
quelle
0

Sowohl der Regex von JavaScript als auch der PHP-Parameter preg_match basieren auf Perl, daher sollte es keine Portierungsprobleme geben. Beachten Sie jedoch, dass JavaScript nur eine Teilmenge der von Perl unterstützten Modifikatoren unterstützt.

Weitere Informationen zum Vergleich der beiden:

Was die Versandmethode betrifft, würde ich vorschlagen, dass Sie JSON , das schlankste Format für den Datenaustausch ab Datum (AFAIK) und direkt verwenden über eval () in ein JavaScript-Objekt übersetzt werden. Stellen Sie den bösen Jungen einfach durch eine AJAX -Sitzung, und Sie sollten darauf eingestellt sein, zu gehen.

Ich hoffe, das hilft:)

    
Andy 27.08.2008 15:54
quelle

Tags und Links