Patrón de expresiones regulares para que coincida con al menos 1 número y 1 carácter en una cadena
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.
¿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]+)$/
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.