Las expresiones regulares son patrones que permiten a un bot validar el formato de la entrada del usuario, por ejemplo, para asegurarse de que la entrada sea un número de teléfono y no otra cosa.

Para comparar usando una expresión regular, debes configurar el tipo de coincidencia como "Coincidencia RegEx".
¡Las expresiones regulares deben escribirse en el propio disparador, no en las variables utilizadas para la coincidencia!
Al recopilar datos, los usuarios a menudo ingresan algo diferente a lo que se les pide. Aquí hay un flujo típico para validar la entrada de un número de teléfono. Si el usuario no ingresa un número de teléfono válido, el bot le pedirá que lo intente de nuevo.

El bloque de entrada de número de teléfono tiene dos conexiones salientes: una sin ningún disparador, y la otra con un disparador que utiliza una expresión regular para coincidir con un número de teléfono.
^(\+)?((\d{2,3}) ?\d|\d)(([ -]?\d)|( ?(\d{2,3}) ?)){5,12}\d$
Este flujo utiliza dos conexiones para manejar la validación del número de teléfono:
-
Conexión principal (número válido)
- Disparador: Un número de teléfono con formato correcto.
- Acción: Agrega el número a la aplicación y continúa.
-
Conexión de respaldo (entrada no válida)
- Prioridad: Menor que la conexión principal.
- Disparador: Cualquier entrada que no sea un número de teléfono válido.
- Acción: Informa al usuario del error y lo redirige para que lo intente de nuevo.
Esto asegura que el usuario solo avance después de proporcionar datos válidos, mientras recibe retroalimentación inmediata sobre cualquier error.
Una lista de expresiones regulares útiles:
-
Entrada numérica solo dígitos que comienzan con 1:
^[1-9]+[0-9]*$ -
Entrada numérica solo dígitos que comienzan con 0:
^[0-9]+[0-9]*$ -
Número de tarjeta de crédito:
[0-9]{13,16} -
Número de teléfono general:
^(\+)?((\d{2,3}) ?\d|\d)(([ -]?\d)|( ?(\d{2,3}) ?)){5,12}\d$ -
Letras y números (latín):
^[a-zA-Z0-9]+$ -
Dominio (ej. abcd.com):
^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}$ -
URL (ej. abcd.com):
(https?):((//)|(\\\\))+[\w\d:#@%/;$()~_?\+-=\\\.&]* -
IPv4:
((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?) -
IPv6:
((^|:)([0-9a-fA-F]{0,4})){1,8}$ -
Nombre de usuario (con un límite de 2-20 caracteres, que pueden ser letras y números, el primer carácter debe ser una letra):
^[a-zA-Z][a-zA-Z0-9-_\.]{1,20}$ -
Contraseña (letras latinas minúsculas y mayúsculas, números):
^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\s).*$ -
Contraseña segura (mayúsculas, minúsculas, números/caracteres especiales, mínimo 8 caracteres):
(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$ -
Fecha en formato AAAA-MM-DD:
[0-9]{4}-(0[1-9]|1[012])-(0[1-9]|1[0-9]|2[0-9]|3[01])
ACT. Validación de fecha más estricta:
(19|20)\d\d-((0[1-9]|1[012])-(0[1-9]|[12]\d)|(0[13-9]|1[012])-30|(0[13578]|1[02])-31) -
Fecha en formato DD/MM/AAAA:
(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)\d\d -
Fecha en formato DD.MM.AAAA:
(0[1-9]|[12][0-9]|3[01])[.](0[1-9]|1[012])[.](19|20)\d\d -
Números enteros y de punto flotante (punto como separador decimal)
\-?\d+(\.\d{0,})? -
UUID:
^[0-9A-Fa-f]{8}\-[0-9A-Fa-f]{4}\-[0-9A-Fa-f]{4}\-[0-9A-Fa-f]{4}\-[0-9A-Fa-f]{12}$ -
Latitud o Longitud:
-?\d{1,3}\.\d+ -
ACT. Correo electrónico:
^[-\w.]+@([A-z0-9][-A-z0-9]+\.)+[A-z]{2,4}$ -
ACT. URL
~^(?:(?:https?|ftp|telnet)://(?:[a-z0-9_-]{1,32}(?::[a-z0-9_-]{1,32})?@)?)?(?:(?:[a-z0-9-]{1,128}\.)+(?:ru|su|com|net|org|mil|edu|arpa|gov|biz|info|aero|inc|name|[a-z]{2})|(?!0)(?:(?!0[^.]|255)[0-9]{1,3}\.){3}(?!0|255)[0-9]{1,3})(?:/[a-z0-9.,_@%&?+=\~/-]*)?(?:#[^ '\"&]*)?$~i -
ACT. Hora en HH:MM:SS: formato
^([0-1]\d|2[0-3])(:[0-5]\d){2}$ -
ACT. Dirección MAC:
([0-9a-fA-F]{2}([:-]|$)){6}$|([0-9a-fA-F]{4}([.]|$)){3}
Hay una gran cantidad de expresiones regulares disponibles. Si no encuentras la que necesitas en esta lista, es buena idea usar un motor de búsqueda.
Puedes probar expresiones regulares cómodamente en sitios web como: https://regex101.com/


