2012-06-01 14 views
5

¿Es posible mostrar las cadenas que coinciden con una expresión regular?¿Es posible generar cadenas que coincidan con una cadena de expresiones regulares?

Ejemplo:

Tome la expresión /^AD\d{3}/ y visualización AD999

Lo que estoy haciendo es validar una cadena que es bastante simple, ya sea que contenga todos los números, tal vez unos pocos caracteres, y tal vez un '- '. Estoy validando un código postal en el formulario enviado en una base de datos de todos los países que usan un código postal.

Podría realizarlo en Javascript o PHP, si eso hace alguna diferencia.

+6

En general, hay muchas cadenas que coinciden con una expresión regular, al menos, para cualquier expresión regular útil. ¿Qué criterios desea utilizar para decidir cuál de las muchas cadenas coincidentes debería mostrarse? –

+0

¿Cómo espera saber que fue AD999 y no AD001 de '/^AD \ d {3} /'? – ceejayoz

+0

Simplemente quiere mostrar un ejemplo de entrada válida. –

Respuesta

4

No. Ese tipo de característica no está disponible.

Puede intentar implementarlo usted mismo, pero no creo que esa sea la solución para usted. Simplemente escribe los mensajes normalmente. No todo debe ser siempre dinámico.

Aunque me gusta tu forma de pensar.

+0

Me imaginé que ahorraría tener otro campo en la base de datos si pudiera revertirlo. – Rodney

+0

¿Por qué es un problema tener otro campo en la base de datos? –

+0

No es un problema, solo un montón de trabajo cuando mi base de datos que he creado contiene todos los países del mundo que usan códigos postales. – Rodney

2

He entendido su problema un poco mejor con sus comentarios adicionales.

Dado que sus datos son solo códigos postales, sugiero que sería posible trabajar en la otra dirección y almacenar una imagen en la base de datos y generar automáticamente una expresión regular de eso.

Por ejemplo, los códigos postales del Reino Unido se parecen a AA?99? 9AA | AA?9A 9AA que se convierten fácilmente en expresiones regulares (¡utilizando una expresión regular!).

+0

O más generalmente, tiene un lenguaje específico de dominio desde el que puede generar el ejemplo y la expresión regular. Como un aparte, SAN 1TA es un código postal válido en el Reino Unido, que se usa para niños que envían cartas a Papá Noel y hay algunos otros ejemplos raros como ese. Si alguna vez desea aceptar aquellos en un formulario es una pregunta diferente. –

+1

Ten cuidado, es 'SAN TA1'. ¡No quieres que esas cartas se descarrilen! – Borodin

4

Es posible. El developers of PEX figured it out.

No se ilusione con, no conozco ninguna implementación de javascript.

+0

El enlace está roto, pero vea a Pepijn responder a continuación para una implementación de JavaScript realmente agradable – Carlton

Cuestiones relacionadas