Validação do Código Postal dos EUA
um código que valida um código postal dos EUA Válido. Eu sei que existem bases de dados de código postal por aí, mas ainda existem usos, como páginas web, validação rápida, e também o fato de que os códigos zip continuam sendo emitidos, então você pode querer usar validação fraca.
Escrevi um pouco sobre códigos postais num projecto paralelo no meu. wiki / blog:Https://benc.fogbugz.com/default.asp?W24
Há também um novo e estranho tipo de código postal.Https://benc.fogbugz.com/default.asp?W42
Eu posso fazer o código javascript, mas seria interessante ver quantas línguas podemos chegar aqui.
13 answers
Literal Regex De Javascript:
Código Postal dos EUA: /(^\d{5}$)|(^\d{5}-\d{4}$)/
var isValidZip = /(^\d{5}$)|(^\d{5}-\d{4}$)/.test("90210");
Alguns países usam Códigos Postais, o que falharia com este padrão.
function isValidUSZip(sZip) {
return /^\d{5}(-\d{4})?$/.test(sZip);
}
Aqui está uma função JavaScript que valida um código postal/ZIP baseado em um código de país. Permite uma formatação um pouco liberal. Você poderia adicionar casos para outros países também. Note que o caso padrão permite códigos postais vazios, uma vez que nem todos os países os usam.
function isValidPostalCode(postalCode, countryCode) {
switch (countryCode) {
case "US":
postalCodeRegex = /^([0-9]{5})(?:[-\s]*([0-9]{4}))?$/;
break;
case "CA":
postalCodeRegex = /^([A-Z][0-9][A-Z])\s*([0-9][A-Z][0-9])$/;
break;
default:
postalCodeRegex = /^(?:[A-Z0-9]+([- ]?[A-Z0-9]+)*)?$/;
}
return postalCodeRegex.test(postalCode);
}
Para tua informação, o segundo link relativo aos códigos postais da vaidade parece ter sido uma piada do Dia Das mentiras.
Se está a fazer para o Canadá lembre-se que nem todas as letras são válidas
Estas letras são inválidas: D, F, I, O, Q, ou U E as letras W E Z não são usadas como primeira letra. Também algumas pessoas usam um espaço opcional após o terceiro personagem.
Aqui está uma expressão regular para o Código postal canadiano:
new RegExp(/^[abceghjklmnprstvxy][0-9][abceghjklmnprstvwxyz]\s?[0-9][abceghjklmnprstvwxyz][0-9]$/i)
O último torna-o insensível à case.
Aqui está um do ficheiro do jQuery Validate plugin additional-methods.js
...
jQuery.validator.addMethod("zipUS", function(value, element) {
return /(^\d{5}$)|(^\d{5}-\d{4}$)/.test(value);
}, "Please specify a valid US zip code.");
EDIT : dado que o código acima faz parte do 'plugin' de validação do jQuery, depende do método .addMethod()
.
Remova a dependência dos 'plugins' e torne-a mais genérica....
function checkZip(value) {
return (/(^\d{5}$)|(^\d{5}-\d{4}$)/).test(value);
};
Utilização do exemplo: http://jsfiddle.net/5PNcJ/
Esta é uma boa solução JavaScript para o problema de validação que tem:
/\b\d{5}-\d{4}\b/
XYZ College
Departamento de TI
City, St ZIP
A pior parte é o correio 99% do tempo é entregue, o outro 1%, bem que é devolvido para um endereço incompleto como deveria.
Num post anterior, alguém mencionou o USPS CASS., esse software não é livre.Regexar um teste de código postal é bom, estou a usar expressões para determinar se nós, CA, UK, ou AU Código Postal. Eu vi expressões para o Japão e outros que só adicionam desafios na escolha do país correto a que um zip pertence.
De longe, a melhor resposta é usar listas Drop Down para estado e País. Em seguida, use tabelas para validar ainda mais, se necessário. Só para lhe dar uma ideia, existem 84052 combinações aceitáveis de US City St Zip em apenas os primeiros 5 algarismo. Existem 249 países válidos de acordo com a ISO e existem 65 Estados/territórios norte-americanos.
Há Militares, apenas caixas de correio, e classes únicas de código postal também. O beijo aplica-se aqui.
Sugiro que dê uma vista de olhos nas APIs de informações de endereços da USPS. Você pode validar um zip e obter endereços padrão formatados. https://www.usps.com/business/web-tools-apis/address-information.htm
Uma maneira de verificar o código postal válido do Canadá é -
function isValidCAPostal(pcVal) {
return ^[A-Za-z][0-9][A-Za-z]\s{0,1}[0-9][A-Za-z][0-9]$/.test(pcVal);
}
Espero que isto ajude alguém.
Para promover a minha resposta, a UPS e a FedEx não podem entregar a uma Caixa postal não sem usar a USPS como manipuladora final. A maioria do software de transporte lá fora não permitirá um zip PO Box para seus serviços padrão. Exemplos de zips de caixa de PO são 00604-RAMEY, PR e 06141-HARTFORD, CT.
A necessidade de validar códigos postais pode ser uma questão de até onde ir, Qual é o orçamento, Qual é a linha de tempo.Como qualquer coisa com expressões teste, teste, teste e teste Outra vez. Eu tinha uma expressão para a validação do estado e descobri que YORK passou quando deveria falhar. A única vez em milhares alguém entrou em Nova York, Nova York 10279, ugh.
[[1] também tenha em mente, USPS não gosta de pontuação como N. Market St. e também tem abreviaturas aceitáveis muito específicas para coisas como Lane, Place, North, Corporation e afins.O Drupal 7 também tem uma solução fácil aqui, que lhe permitirá validar contra vários países.
Https://drupal.org/project/postal_code_validation
Você vai precisar deste módulo também
https://drupal.org/project/postal_code
Testa-o em http://simplytest.me/
O que pode fazer é quando o utilizador seleccionar o seu país, activar a validação. Validação de endereços e validação de zipcode são duas coisas diferentes. Validar o ZIP é apenas certificar-se do seu inteiro. A validação do endereço é validar o endereço real para a exatidão, de preferência para o envio por correio.
Para permitir que um Utilizador introduza um código postal canadiano com letras minúsculas também, a expressão regular teria de ser assim:
/^([a-zA-Z][0-9][a-zA-Z])\s*([0-9][a-zA-Z][0-9])$/