2016-09-24 1 views
-1

공백으로 시작하고 끝내지 않기 위해 ng-pattern을 작성했습니다. $ watch에서 큰 따옴표를 일치 시키려고합니다.AngularJS - 공백으로 시작하고 끝나서는 안되며 큰 따옴표 (")로 묶어서는 안되는 정규 표현식

그러나 그것은 작동하지 않습니다 NG 패턴도

를 작동하지

내 NG 패턴은 다음과 같습니다. JS에서 볼 $

<input type="text" class="form-control" ng-model="wifiResult.ssid" 
    name="ssid" 
    ng-class="{'inputError' : errorMsg}" 
    ng-minlength="1" 
    ng-maxlength="32" 
    ng-pattern="/^[^\s]+(\s+[^\s]+)*$/" 
    required > 

된다

$scope.$watch('wifiResult.ssid', function(scope){ 
     var regexToRestrict = /^["]+$/; 

     if(scope){ 
      var pressChar  = scope.slice(-1); 
      if(pressChar.match(regexToRestrict)){ 
       scope = scope.slice(0,-1); // try to replace " to blank 
      } 
      else{ 
       console.log('not matched'); 
      } 
     }  
     else{ 
      console.log('no scope'); 
     } 
    }); 

다른 방법이 있습니까?

미리 감사드립니다.

+0

수행해야 할 작업을 명확히 할 수 있습니까? 나는 왜/^ [^ \ s] + (\ s + [^ \ s] +) * $/"'는 효과가 없지만 시계에서 무엇을하려고하는지 알 수 없다. '^ "$'는'''와 같은 입력을 찾습니다. –

답변

0

당신은 잘못된 입력입니다라는 오류를 던질 수있는 입력 및 형태 (")를 입력에서 사용자를 방지하기 위해 HTML이 ng-pattern='/^[^\\\\./:*?\"<>|][^\\\\/:*?\"<>|]{0,254}$/'을 좋아하는 당신의 정규식을 변경할 수 있습니다. 각 ng-trim에서

는 설정의 기본입니다 true로 설정하면 ng-model에 할당하기 전에 사용자 입력을 둘러싼 모든 공백이 제거됩니다.

사용자가 입력 값을 입력 할 때마다 입력 값을 사용하지 않을 때까지는 감시자가 필요하지 않습니다 사용자가 무언가를 변경할 때마다 유효성 검사를하는 것은 불필요한 작업입니다.

+0

이 정규식은 중간 영역을 허용합니까? – PiyaModi

+0

안녕하세요. 답변 해 주셔서 감사합니다. 그것은 나를 위해 잘 작동합니다 ... :) – PiyaModi