2014-08-28 6 views
4

AngularJS의 텍스트 필드에서 IP의 유효성을 검사하는 방법은 무엇입니까? 현재이 코드를 사용하고 있지만 모든 경우에 작동하지 않습니다. 어떤 생각?텍스트 필드에서 IP의 유효성을 검사하는 방법 AngularJS

ng-pattern='/^((([01]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))[.]){3}(([0-1]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))$/

+0

하는 경우는 그것이 실패? –

+0

도움이 될만한 http://www.w3resource.com/javascript/form/ip-address-validation.php – Satpal

+0

@musically_ut 0.0.0.0 및 255.255.255.255를 허용합니다. 나는 그렇게해서는 안된다. – Harikrishnan

답변

9

사용 :

/\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b/ 

일치

당신이 0.0.0.0255.255.255.255 당신이 추가 if 문을 추가하는 것이 좋습니다 드롭 할 경우 255.255.255.255을 통해 0.0.0.0. 그렇지 않으면 정규식이 너무 복잡합니다. 워처와

예 :

$scope.ip = '1.2.3.4'; 

    $scope.$watch(function() { 
     return $scope.ip; 
    }, 

    function (newVal, oldVal) {    
     if (
      newVal != '0.0.0.0' && newVal != '255.255.255.255' && 
      newVal.match(/\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b/)) 
     { 
      // Match attempt succeeded 
     } else { 
      // Match attempt failed 
     } 
    }) 

데모 Fiddle

[편집]

최선 생성하는 지시, 같은 : <ip-input>

이 예에서는 사용자 입력에 대한 지침을 도움이 만들 수 있습니다 format-input-value-in-angularjs

+0

컨트롤러에 시계를 추가하는 대신이 기능을 각도 함수 안에 넣고이를 ng-change 지시문의 표현식으로 사용할 수 있습니다. – Ronald91

+0

@ Ronald91 글쎄요, 지시문 방식이 더 적절합니다. ''과 같은 것입니다. 하지만 SO는 정규 표현식 검증을 요구합니다. 데모 전용 시계를 추가했습니다. BTW, 이것은'$ parsers'로 한번 썼던 예제입니다. http://stackoverflow.com/questions/19890364/format-input-value-in-angularjs/19890485#19890485 –

관련 문제