Política de manejo consistente de los espacios en blanco circundantes

En cuanto a la validación de entradas de usuario, Contact Form 7 básicamente ha emulado lo establecido en la especificación HTML y las implementaciones de los principales navegadores. Sin embargo, hay un problema: no manejan los espacios en blanco circundantes de forma coherente.

Por ejemplo, puedes ingresar http://example.com (una URL válida con espacios al inicio y al final) en un campo de URL sin que se genere un error de validación. Pero si ingresas example@example.com (un correo válido con espacios al inicio y al final) en un campo de correo electrónico, se genera un error typeMismatch.

Otro ejemplo se encuentra en un campo obligatorio. Si dejas un campo obligatorio en blanco, obtendrás un error valueMissing. Pero puedes pasar la validación ingresando cualquier carácter, incluso espacios en blanco. Para muchas personas, el hecho de que espacios en blanco sean suficientes para pasar la validación de un campo obligatorio puede resultar contraintuitivo.

En resumen, algunas comprobaciones de validez se ejecutan luego de eliminar los espacios en blanco circundantes, mientras que otras no.

Solución: implementar una política coherente

Para evitar este problema, introducimos nuestra propia política para el manejo de espacios en blanco circundantes, en lugar de cumplir automáticamente con lo que dicta la especificación HTML.

La política es la siguiente: antes de aplicar una validación, se eliminarán los espacios en blanco al inicio y al final del valor ingresado por el usuario, sin importar el tipo de campo ni el tipo de regla de validación. Por «espacios en blanco» no nos referimos solo al carácter de espacio ASCII (U+0020), sino a todos los caracteres de espacio en blanco definidos por Unicode.

Con base en esta política, cada regla de validación se aplicará después de eliminar los espacios en blanco circundantes. Por lo tanto, el ejemplo example@example.com será aceptado como un correo válido, y un campo obligatorio no aceptará una entrada que consista solo en caracteres de espacio en blanco.

Todos nuestros productos que realizan validación de entrada de usuario (Contact Form 7, Schema-Woven Validation, entre otros) se adaptarán a esta nueva política.