15

Think global, act local

Eso es lo que le dicen, sin embargo, durante todo el tiempo que yo desarrollador Siempre he visto grandes empresas como Google, Microsoft, Oracle y también lo hacen las validaciones de de manera localizada: saben de qué país soy, por lo que intentarán validar mi número de teléfono, código postal y otros detalles, como los números de cuenta bancaria con los métodos de validación adecuados para mi país. Ayer me registré en Google checkout e incluso me mostraron algunos ejemplos de formatos de códigos postales en mi país.validaciones i18n

Así que mi pregunta es, ¿cómo lo hacen? Sé que tienen miles de empleados, pero me cuesta creer que todos hayan tenido que reinventar el pozo. Hay innumerables métodos de validación para los Estados Unidos, pero ¿qué hay del resto del mundo? Yo aún no he visto una biblioteca decente sola fuente abierta (aparte de una muy incomplete and outdated PEAR attempt) para realizar validaciones en varios aspectos comunes de los países, tales como:

  • Identificación Civil
  • identificación fiscal
  • SSN (Número de Seguridad Social)
  • BBAN (Número de cuenta bancaria básica)
  • fax, teléfono y números de móviles
  • códigos postales/Zip
  • Placas de
  • números de serie de billetes
  • y así sucesivamente ...

¿Existe ¿algún recurso bien escondido que desconozco?

+0

No creo que SO sea el lugar adecuado para comenzar un proyecto de este tipo. Puede usar SO con éxito para responder una pregunta específica (por ejemplo, "¿cuál es el formato de las matrículas en Francia?"), Pero no es útil realizar una investigación exhaustiva. –

+0

@Martin: aunque estoy de acuerdo con usted, esperaré un poco más de comentarios antes de eliminar la pregunta, creo que sería mejor tener una sola pregunta como esta y varias respuestas para cada país que cientos de preguntas "¿a quién le doy? valide XXX por YYY ". –

+1

Incluso teniendo miles de empleados y una sucursal local, Google Checkout perdió el código postal correcto para mi ciudad en Argentina. Me obligaron a usar un código incorrecto para registrarme. –

Respuesta

1

Hay una gran diferencia entre la validación simple y completa.A menudo es imposible estandarizar la validación completamente a través de lugares, aquí hay un par de ejemplos:

  • CivilID/SSN etc. números pueden permitir/denegar valores sustitutivos (específicos del sistema), los valores extranjeros, los valores históricos, etc. Nosotros tener 2 sistemas de validación diferentes en una de nuestras aplicaciones para el mismo campo, dependiendo del contexto, y otros sistemas de TI pueden tener otros sistemas de validación.

  • La validación del código postal puede requerir el acceso a una lista de valores válidos, que es algo a lo que debe suscribirse. En muchos países, esta suscripción no está automatizada, y debido a las reglas de copyright, no es trivial redistribuir.

  • Los números de teléfono tienen un problema similar. ¿Permiten números caros, números de teléfono móvil? ¿Cómo los detecta?

Se podría argumentar que una validación simple es posible en la mayoría de los casos - pero para la validación sencilla, a menudo es más fácil de usar la coincidencia de patrones y dejar que el departamento local en cada mercado a definir los patrones válidos.

También existe un problema con el contrato de servicio de software. Si compra software y desea usarlo durante 5 años, es vital que pueda cambiar las reglas de validación, si algo cambia. Experimenté 4 cambios en el sistema de números telefónicos en mi país que afectaron la validación simple como "número de dígitos" y "cuál puede ser el primer dígito".

Por lo tanto, la mejor solución es tener una base de datos centralizada de patrones específicos de la configuración regional y permitir que los administradores modifiquen los patrones de validación.

0

Wikipedia reúne license plate information por país. Del mismo modo para postal codes.

+0

Hay mucho más para la validación que las placas y los códigos postales, sin embargo, la UPU tiene recursos mucho mejores (http: //www.upu. int/post_code/en/postal_addressing_systems_member_countries.shtml) en formatos de código postal. En cuanto a la entrada de la Wikipedia en las placas de matrícula es muy limitada (solo imágenes individuales disponibles para 30 países más o menos). –

1

El PEAR no está tan mal. Por ejemplo, el validador de Nueva Zelanda tiene todo tipo de cosas útiles, como códigos postales, números de IRD, números de teléfono, números de cuentas bancarias http://pear.php.net/manual/en/package.validate.validate-nz.php

su todavía en Alpha, sino que abarca un buen número de países. ¿Puede valer la pena reconsiderar?

+0

No lo creo, principalmente porque los métodos de validación para Nueva Zelanda (o cualquier otro país) no son coherentes con otros países: España, por ejemplo, solo tiene validación de DNI (ID civil) y Portugal (y muchos otros) no lo hacen tener cualquier método de validación Esto es bastante inútil en un entorno i18n IMO. –

+1

¿Has visto esto? http://www.thomasweidner.com/flatpress/2009/09/19/zend_validate_postcode/ – Steve

+0

@Steve: Eso es muy interesante, ¿cómo puedo echarle un vistazo al código? –

0

Bueno, creo que todo lo que necesita es un programador de ese país y un par de días para reasearch & escribir las validaciones .. nada especial .. + hay un montón de información en Wikipedia

+0

Ese es exactamente el punto, soy de Portugal y puedo escribir un buen conjunto de métodos de validación para mi país, pero no sé nada de España, por ejemplo. Wikipedia es buena, y he hecho un buen trabajo de investigación allí, pero falta mucho. –

+0

sí ... pero siempre puedes preguntarle a alguna persona al azar en línea ... correcto ... foros, stackoverflow ... etc.se necesitan solo 2 células cerebrales para resolverlo: P – Aviatrix

+0

Una vez más, ese es el punto de esta pregunta si lo lees cuidadosamente ... –