2016-07-06 2 views
0

나는 P.O.를 가지고 있습니다. Box regex는 훌륭하게 작동하지만 고객은 선도적 인 '#'이 필요한 상황에 처해 있습니다. 내가 주소 내 현재 정규식 설정에이 같이 할 수 있습니다 방법P.O.에 '#'을 붙이십시오. Box Regex (JavaScript)

#1-322 Brooke Street 

을 : 발리는 다음과 같이 포맷 실패의 원인이되는

text.search(/^ *((#\d+)|((box|bin)[-. \/\\]?\d+)|(.*p[ \.]? ?(o|0)[-. \/\\]? *-?((box|bin)|b|(#|num)?\d+))|(p(ost)? *(o(ff(ice)?)?)? *((box|bin)|b)? *\d+)|(p *-?\/?(o)? *-?box)|post office box|((box|bin)|b) *(number|num|#)? *\d+|(num|number|#) *\d+)/i) 

예 주소 : 여기

내 정규식 ?

저는 앵글 러를 가진 플 ​​런커를 만들었습니다. 상자에 텍스트를 입력하면 유효성 검사기가 true에서 false로 적절하게 변경됩니다.

http://plnkr.co/edit/fpLmZQhRryBC3Z3ArZwV?p=preview

+0

는 정규식의 점은 텍스트가 *는 *, 다음 plunker 예는 논리적으로 뒤로 경우의 유효성을 검사하는 경우. "Little Bo Peep"을 문자열로 검증 할 수 있습니다. – JayC

답변

0

유효한 값으로 시작 단일 #을 받아 다음과 같이하십시오.

$scope.validateText = function() { 
    if ($scope.text.search(/^ *((?#\d+)|((box|bin)[-. \/\\]?\d+)|(.*p[ \.]? ?(o|0)[-. \/\\]? *-?((box|bin)|b|(#|num)?\d+))|(p(ost)? *(o(ff(ice)?)?)? *((box|bin)|b)? *\d+)|(p *-?\/?(o)? *-?box)|post office box|((box|bin)|b) *(number|num|#)? *\d+|(num|number|#) *\d+)/i) !== -1) { 
    $scope.valid = false; 
    } else { 
    $scope.valid = true; 
    } 
} 

Plunker : http://plnkr.co/edit/i5f3vbGWB6SQ0bVRxGNV?p=preview