11 expresiones regulares para validar campos en Google Forms

regex

Has abierto una convocatoria de empleo en tu empresa y piensas usar Google Forms (Formularios de Google) para generar preguntas de filtro para tus postulantes. Creas el formulario con todos los campos usuales para que los candidatos completen sus nombres, emails, teléfonos, direcciones y demás información, sin embargo, antes de publicarlo ¿cómo te aseguras que los candidatos llenen los datos en el formato correcto? Incluso si el formato es el correcto, ¿puedes verificar si la data es válida? ¿Es posible agregar un CAPTCHA a tu formulario de Google para evitar los bots de spam? ¿Puedes incluir un filtro para restringir palabras obscenas?

Si planeas recibir decenas o cientos de respuestas en tu formulario, siempre es una buena idea establecer ciertas reglas en el formulario para que contrastes las respuestas antes de que el formulario se envíe. Por ejemplo, si tu formulario solicita un año de nacimiento, y los postulantes deben tener entre 25 y 50 años, deberían solo poder ingresar un número entre 1970 y 1996 en el campo de año de nacimiento.

expresiones regulares en formularios de google

Expresiones Regulares en Formularios de Google

Google Forms facilita agregar validaciones avanzadas de este tipo a campos individuales mediante el uso de Expresiones Regulares (también conocidas como regex). Piensa en ellas como patrones de búsqueda, contra las que cada caracter del campo en el formulario será contrastado. El formulario solo será enviado si el patrón y la data ingresada por el usuario calzan.

Para entender mejor esto usemos un ejemplo real.

Digamos que tu formulario de Google requiere que el usuario ingrese su fecha de nacimiento. Al diseñar el formulario y luego de crear el campo respectivo expande la opción validación de respuesta (ver imagen debajo) y luego selecciona Expresión regular de la lista. Luego elige coincidencias e ingresa el siguiente regex:

^19([78]\d|9[0-6])$
regex en formularios de google para validar fecha de nacimiento

Este campo, al estar asociado a este regex, aceptará valorescomo 1977 o 1955, pero no permitirá el ingreso de valores fuera del rango 1970 a 1996.

regex para validacion de fecha de nacimiento

Expresiones regulares para campos comunes en Formularios de Google

Las expresiones regulares pueden parecer confusas, pero no son tan difíciles de leer y entender si sabes las reglas básicas de este lenguaje. Lo que te mostraré ahora son algunas regex que puedes usar para validar campos comunes en formularios de Google como URLs, números de teléfono, direcciones, fechas, etc.

1. Dirección Postal, permite solo caracteres alfanuméricos, espacios y algunos otros como comas, puntos y el símbolo #

[a-zA-Z\d\s\-\,\#\.\+]+

2. Código ZIP, este regex permite códigos ZIP en el formato estándar, ya sea para códigos de USA o de la India

^\d{5,6}(?:[-\s]\d{4})?$

3. Fecha, acepta fechas en el formato latino dd/mm/aaaa, dd-mm-aaaa o dd.mm.aaaa

^(?:3[01]|[12][0-9]|0?[1-9])([\-/.])(0?[1-9]|1[1-2])\1\d{4}$

4. Email, este regex acepta los formatos de email más comunes, incluido aliases de Gmail con el símbolo “+”. Sin embargo, no hay solución perfecta.

[a-zA-Z0-9_\.\+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-\.]+

5. URL (Dominio Web), este regex es útil para campos que solicitan al usuario su dirección web, incluyendo validación con TLDs como .tienda o .restaurant. El segundo regex de la lista es para URLs de Youtube, incluido dominios youtu.be

https?\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,}
https?\:\/\/(www\.)?youtu(\.)?be(\.com)?\/.*(\?v=|\/v\/)?[a-zA-Z0-9_\-]+

6. Límite de caracteres, la caja de texto por defecto en Google Forms permite al usuario ingresar cualquier número de caracteres; sin embargo, puedes establecer un límite con una expresión regular. En este ejemplo el límite es de 140 caracteres, como en Twitter.

[\w]{1,140}

7. Números de teléfono, suelen ser una serie de números precedidos del símbolo opcional “+” y el código de área entre paréntesis (o no)

\+?\(?\d{2,4}\)?[\d\s-]{3,}

8. Precio (con decimales), si un campo en tu formulario requiere el ingreso de un precio, usa este regex. Sólo recuerda reemplazar el símbolo “$” por el de tu moneda local.

\$?\d{1,3}(,?\d{3})*(\.\d{1,2})?

9. Claves complejas, este regex solo acepta cadenas de texto que contengan al menos 1 letra mayúscula, 1 letra minúscula, 2 dígitos y 1 caracter especial. Además, el mínimo de caracteres permitidos es de 8.

(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9].*[0-9])(?=.*[^a-zA-Z0-9]).{8,}

10. CAPTCHA, Google Forms no ofrece la opción de CAPTCHA, pero puedes crear uno usando regex. Aquí tienes uno súper simple que requiere que el usuario responda a la pregunta “cuánto es 2 + 2?”

^(4|[Ff][Oo][Uu][Rr])$

11. Límite de palabras, si necesitas limitar la cantidad de palabras que el usuario puede ingresar en un campo en particular, este es el regex que necesitas. En este caso, permitimos un mínimo de 10 palabras y un máximo de 15.

^[-\w]+(?:\W+[-\w]+){9,14}\W*$

¿Cómo puedo validar si mis regex funcionan?

En regex101.com puedes validar, editar o crear fácilmente tus propias expresiones regulares.

Traducido y adaptado de: Useful Regular Expressions for Validating Input in Google Forms

Adicional: Descargar Cheatsheet de Expresiones Regulares (PDF)