2015-02-25 14 views
15

jestem straszny z wyrażeń regularnych, ale zastanawiałem się, czy to możliwe, aby korzystać z NG-wzór ze zmiennymCzy jest możliwe aby użyć NG-wzór ze zmiennym

Na przykład,

ng-pattern="/^{{validationCode}}$/" 

gdzie validationCode jest dołączony do $ zmienna w zakresie kontrolera

// Inside Controller 
$scope.validationCode = 'response returned from server' 

Jeśli

$scope.validationCode = 1234123412351234 

wtedy ng-wzór byłby

ng-pattern="/^1234123412351234$/" 

Ale to nie działa i wydaje się, że muszę stworzyć dyrektywę niestandardową, która tak naprawdę nie ma

+0

Oh ... wiesz co ... Myślę, że znalazłem podobne pytanie ... crap http://stackoverflow.com/questions/494035/how-do-you-pass-a-variable-to-a-regular-expression-javascript?rq=1 – abcf

Odpowiedz

23

ng-pattern spodziewa regex wyrażenie.

Od kątowa na documentation o ng-pattern:

Ustawia klucz błędu walidacji wzór, jeśli wartość nie pasuje do wzorca wyrażenia RegExp. Oczekiwana wartość to /regexp/ dla wzorców wbudowanych lub regexp dla wzorców zdefiniowanych jako wyrażenia zakresu.

Innymi słowy, można utworzyć RegExp w kontrolerze:

$scope.pattern = new RegExp(patternFromServer); 

i używać go:

<input ng-model="foo" ng-pattern="pattern"> 
+0

ohh smart, thanks – abcf

Powiązane problemy