Estoy tratando de implementar una función en Javascript que verifique una cadena. El patrón que debo hacer es contener solo caracteres de dígitos, *, # y +. Por ejemplo:
+182031203 +12312312312*# +2131*1231# *12312+# #123*########Intenté muchas cosas como
/^[\d]{1,}[*,#,+]{1,}$pero no funciona. No estoy seguro de entender bien en expresiones regulares. Por favor ayuda.
Creo que quieres el patrón ^[0-9*#+]+$ :
var inputs = ["+182031203", "+12312312312*#", "+2131*1231#", "12312+#", "#123########"]; for (var i=0; i < inputs.length; ++i) { console.log(inputs[i] + " => " + /^[0-9*#+]+$/.test(inputs[i])); }Usando Regex101
/^[0-9\*\#\+]+$/g0-9 coincide con un solo carácter en el rango entre 0 (índice 48) y 9 (índice 57) (sensible a mayúsculas y minúsculas) * coincide con el carácter * con el índice 4210 (2A16 o 528) literalmente (sensible a mayúsculas y minúsculas) # coincide con el carácter # con índice 3510 (2316 o 438) literalmente (sensible a mayúsculas y minúsculas) + coincide con el carácter + con índice 4310 (2B16 o 538) literalmente (sensible a mayúsculas y minúsculas)
Pruebe esta expresión regular:
const rxDigitsAndSomeOtherCharacters = /^(\d+|[*#]+)+$/;Desglosándolo:
^ inicio de texto, seguido de( un grupo [capturador], formado por\d+ uno o más dígitos| o...[*#+]+ uno o más de * , # o +)+ , el grupo [de captura] se repite 1 o más veces, seguido de$ fin de texto