Question

Une fois mon formulaire Web soumis, une expression régulière sera appliquée aux entrées de l'utilisateur côté serveur (via PHP).J'aimerais que la regex identique s'exécute en temps réel côté client pour montrer à l'utilisateur quelle sera la véritable entrée.Ce sera à peu près la même chose que la section Aperçu des pages Poser des questions sur Stack Overflow, sauf avec PHP sur le back-end au lieu de .NET.

Que dois-je garder à l’esprit pour que mes expressions régulières PHP et JavaScript agissent exactement de la même manière ?

Était-ce utile?

La solution

Héhé, cela a été en quelque sorte demandé il y a quelques instants et Jeff a souligné :
http://www.regular-expressions.info/refflavors.html.

Il existe une comparaison des capacités d'expression régulière entre les outils et les langages.

Autres conseils

Si les expressions régulières sont simples, il ne devrait y avoir aucun problème, car les bases des expressions régulières sont communes à la plupart des implémentations.

Pour plus de détails, il serait préférable d'étudier les deux implémentations :

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

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

L'implémentation de Javascripts est probablement la plus basique, donc si vous optez pour une approche au plus petit dénominateur commun, visez celle-là.

J'ai constaté que les différentes implémentations d'expressions régulières présentent souvent des différences subtiles dans ce qu'elles prennent exactement en charge.Si vous voulez être entièrement sûr que le résultat sera le même en front-end et en back-end, le choix le plus sûr serait de faire un appel Ajax à votre back-end PHP et d'utiliser le même morceau de code PHP pour les deux évaluations d'expression régulière.

@LKM AJAX est clairement le gagnant ici.Cela vous permettra également de suivre le SEC principe.Pourquoi voudriez-vous écrire votre code d'analyse en Javascript et PHP ?

L'expression régulière de JavaScript et le preg_match de PHP sont basés sur Perl, il ne devrait donc pas y avoir de problèmes de portage.Notez cependant que Javascript ne prend en charge qu'un sous-ensemble de modificateurs pris en charge par Perl.

Pour plus d'informations pour comparer les deux :

Quant au mode de livraison, je vous suggère d'utiliser JSON, le format d'échange de données le plus mince à ce jour (AFAIK) et directement traduisible en un objet JavaScript via eval().Fais juste passer ce mauvais garçon dans un AJAX session et vous devriez être prêt à partir.

J'espère que ça aide :)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top