# Formatos para direcciones e-mail o direcciones de viviendas

**URL:** <https://forum.getodk.org/t/formatos-para-direcciones-e-mail-o-direcciones-de-viviendas/10335>\
**Category:** Support\
**Created:** [October 25, 2017, 6:44am UTC](https://forum.getodk.org/t/formatos-para-direcciones-e-mail-o-direcciones-de-viviendas/10335 "2017-10-25T06:44:01Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![luis\_gabriel\_Bohorqu](https://getodk.b-cdn.net/letter_avatar_proxy/v4/letter/l/f05b48/32.png) [@luis\_gabriel\_Bohorqu](https://forum.getodk.org/u/luis_gabriel_Bohorqu)\
**Post date:** [October 25, 2017, 6:44am UTC](https://forum.getodk.org/t/formatos-para-direcciones-e-mail-o-direcciones-de-viviendas/10335/1 "2017-10-25T06:44:01Z")

</div>

Hola a todos

Llevo tiempo pensando en si se puede de alguna forma predeterminar el formato cuando se pide una dirección e-mail o cuando se esta solicitando la dirección de la vivienda.  
Algo como por ejemplo una opción que si la persona esta diligenciando su dirección e-mail en el campo solicitada y esta olvido el signo @ el sistema arroje una alerta indicando que ese no es un formato valido.  
El otro ejemplo es cuando se piden direcciones de viviendas toca dejar en campos de texto y como no hay un formato estandarizado la info que llega en las recolección de esta pregunta es bastante errada, se puede predeterminar un formato para este tipo de opciones?

Saludos a toda la comunidad,

---

<div class="post-metadata">

**Author:** ![jruizc](https://getodk.b-cdn.net/user_avatar/forum.getodk.org/jruizc/32/2613_2.png) [@jruizc](https://forum.getodk.org/u/jruizc)\
**Post date:** [October 25, 2017, 4:05pm UTC](https://forum.getodk.org/t/formatos-para-direcciones-e-mail-o-direcciones-de-viviendas/10335/2 "2017-10-25T16:05:03Z")

</div>

Hola Luis,

Para los e-mail podrías utilizar el siguiente constraint:

```
regex(., '[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}')

```

Te recomiendo probarlo antes para garantizar que funcione de acuerdo a lo que necesitas.

En el caso de las direcciones es más complicado. Dependera del formato que desees usar o que se utilice en tu país.

Personalmente, recomiendo no utilizar "constraints" para predeterminar este tipo de datos, pues se corre el riesgo de que los datos que se recojan en campo no se acomoden a lo esperado. Esto lo suelo cubrir y reforzar en la capacitación previa que se le realiza a los encuestadores, y posteriormente lo valido en la base de datos.

Te dejo esta página para aprender a utilizar regex y darle el formato que necesites:

> **[RegexOne - Learn Regular Expressions - Lesson 1: An Introduction, and the ABCs](https://regexone.com/)**
>
> RegexOne provides a set of interactive lessons and exercises to help you learn regular expressions

Además, te recomiendo leer este post de @yanokwa en el que habla acerca del uso de constraints y regex en nombres.

> [@Regex constraint](https://forum.getodk.org/t/regex-constraint/1070/6):
>
> Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems. -- Jamie Zawinski Don't constrain names. It's more trouble than it's worth and your regex will certainly not capture all the punctuation or random characters that names can contain. See [http://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/](http://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/) As to the problem at hand, pyxform doesn't support quotes. You'll have to edit the XML and type it there, a…

Saludos.

---

<div class="post-metadata">

**Author:** ![yanokwa](https://getodk.b-cdn.net/user_avatar/forum.getodk.org/yanokwa/32/1695_2.png) [@yanokwa](https://forum.getodk.org/u/yanokwa)\
**Post date:** [October 26, 2017, 3:51pm UTC](https://forum.getodk.org/t/formatos-para-direcciones-e-mail-o-direcciones-de-viviendas/10335/3 "2017-10-26T15:51:06Z")

</div>

My Spanish is not so bueno, but I agree with Jorge that you probably don't want to have strict constraints here.

This is especially true with email addresses because the [email address specification](http://emailregex.com/email-validation-summary/) is maddening. For me, the best way to validate an email is to send an email to that address with a link inside and see if someone clicks that link. The next best way, especially if you are offline, is to make sure there is no obvious typo.

So what I check is at least one non-whitespace character, followed by an `@`, followed by at least one non-whitespace character, followed by an `.`, and then at least one non-whitespace character. Something like this:  
`regex(., '\S+@\S+\.\S+')`

That should allow most common email addresses and typos like whitespaces and missing the @ and the period. Technically, this will reject valid email addresses (e.g., bob@local) but it's good enough.
