Possível duplicata:
Qual é o código postal e zip regex definitivos?
Preciso do Regex, que pode satisfazer todas as minhas três condições para código postal. Por exemplo-
- 12345
- 12345-6789
- 12345 1234
Quaisquer dicas e sugestões seriam muito apreciadas. Obrigado !
\d{5}([ \-]\d{4})?
.Respostas:
^
= Início da string.\d{5}
= Corresponde a 5 dígitos (para condição 1, 2, 3)(?:…)
= Agrupamento[-\s]
= Corresponde a um espaço (para a condição 3) ou um hífen (para a condição 2)\d{4}
= Corresponder 4 dígitos (para condição 2, 3)…?
= O padrão antes dele é opcional (para condição 1)$
= Fim da string.fonte
\s
corresponderá a qualquer espaço em branco, incluindo guias e novas linhas.00544
é um código postal válido;544
não é./(^\d{5}(?:[\s]?[-\s][\s]?\d{4})?$)/
Para as três condições listadas apenas, essas expressões podem funcionar também:
Consulte esta demonstração para obter explicações adicionais.
Se tivéssemos espaços adicionais inesperados entre 5 e 4 dígitos ou um código postal contínuo de 9 dígitos, como:
esta expressão, por exemplo, seria uma opção secundária com menos restrições:
Consulte esta demonstração para obter explicações adicionais.
Circuito RegEx
jex.im visualiza expressões regulares:
Teste
fonte
Sei que isso pode ser óbvio para a maioria das pessoas que usam RegEx com frequência, mas no caso de algum leitor ser novo no RegEx, achei que deveria apontar uma observação que fiz que foi útil para um de meus projetos.
Em uma resposta anterior de @kennytm:
Se você deseja permitir códigos postais padrão de 5 dígitos e +4, este é um ótimo exemplo.
Para corresponder apenas aos códigos postais no formato 'Zip + 4' dos EUA, conforme eu precisava fazer (apenas as condições 2 e 3), basta remover o último
?
para que ele sempre corresponda ao último grupo de 5 caracteres.Uma ferramenta útil que recomendo para mexer com RegEx está no link abaixo:
https://regexr.com/
Eu uso essa ferramenta com frequência quando encontro o RegEx que faz algo semelhante ao que eu preciso, mas poderia ser um pouco melhor adaptado. Ele também possui um menu de referência RegEx bacana e uma interface informativa que o mantém ciente de como suas alterações afetam as correspondências para o texto de amostra inserido.
Se eu errar ou perder uma informação importante, corrija-me.
fonte