문제

UPS를 통해 배송되는 고객이 있으므로 우체국 상자에 배송 할 수 없습니다. PO 상자가 포함 된 주소를 입력하는 것을 방지하기 위해 고객 주소 필드를 검증 할 수 있기를 원합니다. 클라이언트 측 REGEX 유효성 검사 컨트롤 (ASP.NET)을 사용할 수 있도록 이것이 Regex로 구현 된 경우 가장 좋습니다.

나는 아마도 100% 감지 속도를 얻을 방법이 없다는 것을 알고 있습니다. 나는 대부분의 시간에 효과가있는 것을 찾고 있습니다.

도움이 되었습니까?

해결책

이것은 당신을 시작해야합니다. 주소 필드 가이 정규식과 일치하는지 테스트하십시오.

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

영어로 번역 : 라인의 시작시 P, 선택적 기간과 공간, O가 뒤 따른 다음 선택 기간, 공간, "상자", 그 뒤에 다른 항목이 뒤 따릅니다.

다른 팁

UPS는 또한이를 위해 통합 할 수있는 도구가 있습니다 ...이 방법으로 배송 여부, 비용, 일정 등에 대한 주소를 정확하게 확인할 수 있습니다. UPS IT 솔루션 페이지를 방문하는 것이 좋습니다. 추가 정보.

입력 유효성 검사에 반대하는 우체국 상자로 배송 할 수 없다는 페이지 경고에 면책 조항을 넣는 것이 더 나을 수 있습니다.

아마도 PO 박스 시나리오의 대부분을 잡는 정규식을 만들면 아마도 당신이 의도하지 않은 것들을 잡을 가능성이 높습니다 (즉, 편지의 이름을 포함하는 거리 이름을 가진 고객의 문자 'p' 'o' 및 '상자'))

Regex Ala Lizard로 시작하지만 ( "무시"플래그를 사용하십시오 :)), 과거 데이터를 테스트 한 다음 테스트에서 볼 수있는 유효하지 않은 포함과 제외를 볼 때 반복하십시오.

대부분의 배송 제공 업체 (예 : FedEx)는 배송 주소를 검증합니다. 예를 들어, FedEx Web Services의 경우 배송 주소를 검증하고 예상 비용을 얻는 요청이 있습니다. 이것은 주소가 PO 박스가 아니라는 것을 보장 할뿐만 아니라 나머지 주소가 유효한지 확인합니다.

Jason Coco의 답변에 대한 OP의 의견과 관련하여 :

배송 주소에 Regex 유효성 검사를 추가 할 수있는 위치에 있으므로 응용 프로그램을 제어 할 수 있다고 가정합니다 (즉, 소스가 있고 수정할 수 있음). 이 경우 제출 된 데이터를 다시 확인하면 USPS, FedEx 또는 UPS를 통해 배송 될지 확인하고 해당 배송 업체 별 주소 확인기에 요청을 제출하여 모든 것을 얻을 수 있어야합니다. Jason의 답변에서 제안 된 혜택.

배송 업체와 관련하여 사용자가 비 업즈 선원을 선택할 수 있지만 "UPS가 전달되지 않기 때문에 PO 박스 없음"과 같은 하나의 규모에 맞는 규칙을 구현하지 않을 수도 있습니다. PO Box에 배달하는 사람.

"PO Box .."또는 "PO Box"로 시작하지 않으면 어떻게해야합니까?

예시:

존 슈미트 | 실버 밸리 PO 박스 3901 | Whereswaldoville, si. 78946

주소 필드에 Onblur 이벤트를 사용하여 JavaScript 함수 인 indexof를 사용하여 input.touppercase "po box"|| "PO"는> = 0입니다.

이 두 검색 중 하나를 찾을 수없는 경우 리턴은 -1입니다. 그렇지 않으면 문자열의 시작 위치가 항상 0 이상이됩니다.

이렇게하면 게으른 타이핑, 'PO Box', 'PO Box'및 'PO Box'가 인정 될 수 있습니다. 나는 당신이 'po를 추가 할 수 있다고 생각합니다. 상자도.

어쨌든,이 조건은 '우리는 PO 박스 주소로 배송 할 수 없다는 것을 보여주기 위해 눈에 띄지 않는 메시지를 트리거합니다. " 또는 CSS가 활성화 된 경우 메시지 만 볼 수 있습니다.이 우아한 열화의 유일한 실패는 사용자가 CSS를 가지고 있지만 JS가 활성화되지 않은 경우 (메시지를 전혀 볼 수없는 곳). 오늘 솔루션이지만 더 나은 방법을 생각하면 여기에 다시 게시하겠습니다.

불행히도 UPS의 온라인 소프트웨어를 사용하면 PO 상자가 통과 할 수 있지만 배송 채널에 들어가면 질식 할 것입니다. 우리의 경우, 우리가 PO 상자를 우아하게 예방하려고 할 때 카트 포기 율이 상승했습니다. 우리는 그것을 내버려두고, 판매를 받아들이고, 고객 서비스의 관심을 끌고, 해결하는 것이 훨씬 더 비용 효율적이라고 생각했습니다. 물론, PO 상자의 발생률이 높으면 그렇지 않을 수 있습니다.

원래 질문에서 :

100% 감지 속도를 얻을 방법이 없을 것입니다.

사실, 거기에 있습니다.

주소가 주소 유효성 검사 도구 (내가 일하는 회사가 제작하는 회사)를 사용하여 USPS 형식으로 첫 번째 검증 및 표준화 된 경우 이드 드레스), 그러면 예외없이 모든 PO 박스 주소는 "PO Box ..."로 철자됩니다. 그 후에는 100% 정확도와 정확히 일치하기 위해 문자열 공동성을 만들 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top