Pergunta

Eu tenho um cliente que é o transporte via UPS, e, portanto, não pode entregar para caixas postais. Eu gostaria de ser capaz de validar campos de endereço do cliente, a fim de impedi-los de entrar endereços que incluem uma caixa postal. Seria melhor se isso fosse implementado como um regex para que eu pudesse usar um controle de validação regex do lado do cliente (ASP.NET).

Eu percebo provavelmente não há maneira de obter uma taxa de detecção de 100%, estou apenas à procura de algo que vai funcionar na maioria das vezes.

Foi útil?

Solução

Este deve começar. Teste para ver se o campo Endereço corresponde a esta expressão regular.

"^P\.?\s?O\.?\sB[Oo][Xx]."

A tradução para Inglês: Isso é um P no início da linha, seguido por um período e espaço opcional, seguido por um O, seguido por um período opcional, seguido por um espaço, seguido por "Box", seguido por qualquer coisa outra pessoa.

Outras dicas

A UPS também tem ferramentas que você pode integrar a fazer isso ... que maneira você pode verificar um endereço exatamente como se ou não eles vão enviar, o que o custo seria, horários, etc. Sugiro que visitam a UPS TI página de soluções para mais informações.

Você pode ser melhor colocar um aviso sobre o aviso de página que você não pode enviar para caixas de correio, que se opõem à validação da entrada.

Mais do que provavelmente se você criar um regex que as capturas na maioria das P.O. cenários de caixa, há uma boa chance de que também vai pegar coisas que não tinham a intenção (ou seja, um cliente com um nome de rua contendo 'p' as letras 'o box' 'e')

Eu começaria com um regex ala Lizard (mas usar o sinalizador "ignorar caso" :)), teste em dados históricos, então iterate como você vê o que inclusões inválidos e exclusões que você vê no teste.

A maioria dos provedores de transporte (por exemplo FedEx) irá validar o endereço de entrega. Por exemplo, com serviços web FedEx, há uma chamada para validar um endereço de entrega e obter o custo estimado. Isso não só garante que o endereço não é uma caixa postal, mas também garante que o restante do endereço é válido.

Em relação comentário do OP para a resposta de Jason Coco:

Uma vez que você está em uma posição para adicionar validação regex para o endereço de entrega, presumo que você tem o controle da aplicação (ou seja, você tem a fonte e pode modificá-lo). Se for esse o caso, então você deve ter a capacidade de, no recibo dos dados apresentados, verificar se é para ser enviado via USPS, FedEx ou UPS e enviar uma solicitação para o validador endereço específico-shipper apropriado, ganhando toda a benefícios sugerido na resposta de Jason.

Ao torná-lo específico do remetente, o que também lhe permitem evitar a implementação de one-size-fits-all regras, como "sem caixas de PO porque UPS não entregar a eles", mesmo que o usuário pode selecionar non carregadores -UPS que fazem entregar para caixas postais.

E se ele não começar com "PO Box .." ou "P.O. Box"?

Exemplo:

John Schmidt | Silver Valley PO Box 3901 | Whereswaldoville, SI. 78946

Eu usei um evento onblur para o campo de endereço para usar uma função javascript, indexOf, para reconhecer o input.toUpperCase "PO BOX" || "P.O", isto é> = 0.

Se qualquer uma destas duas pesquisas não são encontrados, o retorno é -1, caso contrário, ele retornará posição inicial da seqüência que será sempre 0 ou mais.

Isto irá assegurar que a digitação preguiçoso, 'po box,' caixa p.o '' e, assim como 'por via oral box' será reconhecido. Eu suponho que você poderia adicionar 'po. box' também.

De qualquer forma, a condição desencadeia uma mensagem discreta para mostrar que 'Não podemos enviar para um endereço PO Box." É um recurso para não vê-lo se ele não se aplicar a você. Caso contrário, para os usuários que don' t tem js ou css habilitado, eles só verá a mensagem. a única falha neste degradação graciosa é se um usuário tem css, mas não js habilitado (onde eles simplesmente não vão ver a mensagem a todos). Eu só vim -se com a solução de hoje, mas se eu pensar em uma maneira melhor, eu vou voltar a publicá-la aqui.

Infelizmente, software online da UPS permite P.O. Caixas de passar, mas vai engasgar com eles uma vez que eles estão no canal de navegação. No nosso caso, a nossa taxa de abandono carrinho subiu quando tentou impedir graciosamente P.O. Boxes. Descobrimos que é muito mais rentável para deixá-lo sozinho, aceitar a venda, trazê-lo para a atenção de serviço ao cliente, e deixá-los resolvê-lo. Claro, se você tem uma alta incidência de p.o Boxes, isso pode não ser o caso para você.

A partir da pergunta original:

Eu percebo que provavelmente há nenhuma maneira de obter uma taxa de detecção de 100%, ...

Na verdade, não existe.

Se o endereço é primeiro validado e padronizado para o formato USPS usando uma ferramenta de validação de endereços (a empresa que eu trabalho para marcas YAddress ), em seguida, todos PO endereços de caixa, sem exceção será escrito "PO BOX ...". Depois que você pode string de compará-los para uma correspondência exata com 100% de precisão.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top