Necesito validar un código postal canadiense (por ejemplo, M4B 1C7
) usando expresiones regulares C# (.NET).Validación de código postal canadiense
Respuesta
códigos postales canadienses no pueden contener las letras D, F, I, O, Q, o U, y no puede comenzar con W o Z:
[ABCEGHJKLMNPRSTVXY][0-9][ABCEGHJKLMNPRSTVWXYZ][0-9][ABCEGHJKLMNPRSTVWXYZ][0-9]
Si desea un espacio opcional en el medio:
[ABCEGHJKLMNPRSTVXY][0-9][ABCEGHJKLMNPRSTVWXYZ] ?[0-9][ABCEGHJKLMNPRSTVWXYZ][0-9]
Sugiero lo siguiente:
bool FoundMatch = false;
try {
FoundMatch = Regex.IsMatch(SubjectString, "\\A[ABCEGHJKLMNPRSTVXY]\\d[A-Z] ?\\d[A-Z]\\d\\z");
} catch (ArgumentException ex) {
// Syntax error in the regular expression
}
He modificado mi respuesta para excluir las cartas no válidos en el primer carácter, como por http://www.infinitegravity.ca/postalcodeformat.htm. – Templar
f usted no quiere tener que hacer dos barras para cada raya vertical, utilice una cadena @ literal como en '@ "\ A [ABCEGHJKLMNPRSTVXY] \ d [A-Z]? \ D [A-Z] \ d \ z" '. – cdmckay
Algo como esto:
^[A-Z]\d[A-Z] \d[A-Z]\d$
No todas las letras son válidas en los códigos postales. – Tilendor
No vale la pena validar el formato de un código postal sin validar su significado, ya que los errores tipográficos todavía pueden dar como resultado un código postal válido para la dirección incorrecta. Desea validar el código con la base de datos de direcciones. Ver http://www.canadapost.ca/cpo/mc/business/productsservices/atoz/postalcodeproducts.jsf
el puesto enlace de Canadá está muerto – billynoah
Estas son las reglas http://en.wikipedia.org/wiki/Postal_code#Reserved_characters
ABCEGHJKLMNPRSTVXY <-- letter used
DFIOQU <-- letters not used because it mixes up the reader
WZ <-- letters used but not in the first letter
With that in mind the following in the proper regex
@[ABCEGHJKLMNPRSTVXY][0-9][ABCEGHJKLMNPRSTVWXYZ][\s][0-9][ABCEGHJKLMNPRSTVWXYZ][0-9]
Prueba esto:
function postalCodeCheck (postalCode, type) {
if (!postalCode) {
return null;
}
postalCode = postalCode.toString().trim();
var us = new RegExp("^\\d{5}(-{0,1}\\d{4})?$");
// var ca = new RegExp(/^((?!.*[DFIOQU])[A-VXY][0-9][A-Z])|(?!.*[DFIOQU])[A-VXY][0-9][A-Z]\ ?[0-9][A-Z][0-9]$/i);
var ca = new RegExp(/^[ABCEGHJKLMNPRSTVXY]\d[ABCEGHJKLMNPRSTVWXYZ]()?\d[ABCEGHJKLMNPRSTVWXYZ]\d$/i);
if(type == "us"){
if (us.test(postalCode.toString())) {
console.log(postalCode);
return postalCode;
}
}
if(type == "ca")
{
if (ca.test(postalCode.toString())) {
console.log(postalCode);
return postalCode;
}
}
return null;
}
class Program
{
static void Main(string[] args)
{
string c1;
string c2;
string c3;
string c4;
string c5;
string c6;
string c7;
int sortie;
bool parfais = true;
Console.WriteLine("entrer votre code postal");
string cp = Console.ReadLine();
if (cp.Length == 7)
{
c1 = cp.Substring(0, 1);
c2 = cp.Substring(1, 1);
c3 = cp.Substring(2, 1);
c4 = cp.Substring(3, 1);
c5 = cp.Substring(4, 1);
c6 = cp.Substring(5, 1);
c7 = cp.Substring(6, 1);
if (int.TryParse(c1, out sortie))
{
parfais = false;
Console.WriteLine("le 1er caratere doit etre une lettre");
}
if (int.TryParse(c2, out sortie) == false)
{
parfais = false;
Console.WriteLine("le 2e caratere doit etre un nombre");
}
if (int.TryParse(c3, out sortie))
{
parfais = false;
Console.WriteLine("le 3e caratere doit etre une lettre");
}
if (c4.Contains(" ") == false)
{
parfais = false;
Console.WriteLine("vous devez utiliser un espace");
}
if (int.TryParse(c5, out sortie) == false)
{
parfais = false;
Console.WriteLine("le 5e caratere doit etre un nombre");
}
if (int.TryParse(c6, out sortie))
{
parfais = false;
Console.WriteLine("le 6e caratere doit etre une lettre");
}
if (int.TryParse(c7, out sortie) == false)
{
parfais = false;
Console.WriteLine("le 7e caratere doit etre un nombre");
}
else if(parfais == true)
{
Console.WriteLine("code postal accepter");
Console.ReadLine();
}
}
else
{
Console.WriteLine("le code postal doit contenir 7 caratere incluant l'espace");
}
Console.ReadLine();
el PO quiere para usar expresiones regulares No hay ninguno en esta respuesta. –
- 1. Javascript expresiones regulares de código postal canadiense
- 2. Código postal (Código Postal de los EE.UU.) de validación
- 3. Validación de casilla postal
- 4. ¿El código postal más cercano de un código postal?
- 5. Validación de expresión regular de casilla postal
- 6. ¿El código postal y el código postal están en violación de la 3ra forma normal?
- 7. Calculador de distancia de código postal
- 8. Demographics de código postal en R
- 9. Obtener código postal de latitud y longitud?
- 10. Google maps - Código postal que traza
- 11. código postal + País a coordenadas geográficas
- 12. Latitud y longitud según el código postal
- 13. matriz transpuesta pitón y el código postal
- 14. PHP/MySQL de búsqueda de código postal proximidad
- 15. ¿Cómo extraer Código postal de V3 API de Google Maps
- 16. Análisis de entrada de usuario - ciudad/estado/código postal/país
- 17. Código postal con salida de lista en lugar de tupla
- 18. Obtenga el código postal de la ubicación actual - iPhone SDK
- 19. PHP: verificación de código postal si está cubierto
- 20. ¿Cómo buscar un código postal desde una coordenada de GPS?
- 21. El mejor complemento de código postal para Ruby
- 22. Google Maps API Código geográfico Código postal y establecer ¿Código de país?
- 23. MySQL - cómo código postal del panel frontal con "0"?
- 24. Maxmind - Latitud y longitud desde el código postal
- 25. iOS Buscar ubicación (Latitud, longitud) desde Código postal
- 26. Ciudad/Estado/código postal gratuito a Latitude/Longitude Database?
- 27. Google Maps API: devolver resultados para el código postal
- 28. Convertir lat/lon a código postal/nombre del barrio
- 29. Crear código postal del directorio en Unix m/c
- 30. ¿La latitud y la longitud pueden encontrar el código postal?
+1 para "Los códigos postales canadienses no pueden tener ciertas letras". Es posible que también desee agregar que la letra inicial es más restringida, luego la segunda y tercera. –
Muchísimas gracias por la respuesta ... Esto funciona bien para los códigos como M4B1E8 ... pero no lo puedo trabajar para M4B 1E8. Canadá postal podría tener espacio después de 3 characters..reference aquí: http: //www.mongabay.com/igapo/toronto_zip_codes.htm – Jimmy
Idealmente, usted debe ignorar el espacio en blanco en la entrada y normalizar los datos a un formato canónico para su almacenamiento. De esta forma, las personas pueden ingresar códigos postales con o sin espacios, y no importará. Puede formatearlos para fines de salida si es necesario. – Rob