test - Hacer una expresión regular de JavaScript equivalente a una expresión regular de PHP
probar expresiones regulares (5)
Después de enviar mi formulario web, se aplicará una expresión regular a la entrada del usuario en el lado del servidor (a través de PHP). Me gustaría tener la expresión regular idéntica ejecutándose en tiempo real en el lado del cliente para mostrarle al usuario cuál será la entrada real. Esto será más o menos lo mismo que la sección de Vista previa en las páginas de Ask Question en Stack Overflow excepto con PHP en el back-end en lugar de .NET.
¿Qué debo tener en cuenta para que mis expresiones regulares de PHP y JavaScript actúen exactamente igual entre ellas?
@LKM AJAX es el claro ganador aquí. Esto también le permitirá seguir el principio DRY . ¿Por qué querrías escribir tu código de análisis en Javascript y PHP?
He descubierto que las diferentes implementaciones de expresiones regulares a menudo tienen sutiles diferencias en lo que son exactamente compatibles. Si quiere estar completamente seguro de que el resultado será el mismo en ambos frontend y back-end, la mejor opción sería hacer una llamada Ajax a su back-end de PHP y usar el mismo código PHP para ambas evaluaciones de expresiones regulares.
Hehe, esto fue una especie de pregunta hace unos momentos y Jeff señaló:
http://www.regular-expressions.info/refflavors.html .
Hay una comparación de capacidades de expresión regular en herramientas e idiomas.
Si las expresiones regulares son simples, entonces no debería haber ningún problema, ya que los conceptos básicos de las expresiones regulares son comunes en la mayoría de las implementaciones.
Para detalles, entonces sería mejor estudiar ambas implementaciones:
http://www.regular-expressions.info/php.html
http://www.regular-expressions.info/javascript.html
La implementación de Javascripts es probablemente la más básica, por lo que si busca un enfoque de mínimo denominador común, apunte a eso.
Tanto la expresión regular de JavaScript como la preg_match de PHP están basadas en Perl, por lo que no debería haber problemas de portabilidad. Tenga en cuenta, sin embargo, que Javascript solo admite un subconjunto de modificadores que admite Perl.
Para obtener más información para comparar los dos:
En cuanto al método de entrega, sugiero que use JSON , el formato de intercambio de datos más delgado hasta la fecha (AFAIK) y directamente traducible a un objeto de JavaScript a través de eval (). Simplemente pon a ese chico malo a través de una sesión de AJAX y deberías estar listo para ir.
Espero que esto ayude :)