Patrón de expresiones regulares para que coincida con al menos 1 número y 1 carácter en una cadena

Resuelto OM The Eternity asked hace 12 años • 10 respuestas

tengo una expresión regular

/^([a-zA-Z0-9]+)$/

esto solo permite solo caracteres alfanuméricos, pero también si inserto solo números o solo caracteres, también los acepta. Quiero que funcione como si el campo aceptara solo valores alfanuméricos pero el valor debe contener al menos 1 carácter y 1 número.

OM The Eternity avatar Oct 07 '11 15:10 OM The Eternity
Aceptado

¿Por qué no aplicar primero toda la prueba y luego agregar pruebas individuales para caracteres y números? De todos modos, si quieres hacerlo todo en una sola expresión regular, usa la anticipación positiva:

/^(?=.*[0-9])(?=.*[a-zA-Z])([a-zA-Z0-9]+)$/
phihag avatar Oct 07 '2011 08:10 phihag

Puedo ver que otros socorristas le han brindado una solución completa. El problema con las expresiones regulares es que pueden ser difíciles de mantener/comprender.

Una solución más sencilla sería conservar su expresión regular existente y luego crear dos nuevas expresiones regulares para probar "al menos una alfabética" y "al menos una numérica".

Entonces, prueba esto: -

/^([a-zA-Z0-9]+)$/

Luego esto :-

/\d/

Luego esto :-

/[A-Z]/i

Si su cadena pasa las tres expresiones regulares, tiene la respuesta que necesita.

Paul Alan Taylor avatar Oct 07 '2011 08:10 Paul Alan Taylor