2016-04-19 2 views
1

--Kurzversion--ng-Muster zur Verwendung Regex von Winkelkonstanten

Wie bekommen Sie ng-Muster Regex von Winkelkonstanten zu verwenden?

--Long Version--

Ich arbeite an einem großen Angular-1-Projekt und wir haben mehrere Formen. Viele dieser Formulare haben die gleichen Felder wie Postleitzahl und Telefonnummer. Ich wollte nach einem konsistenten Weg suchen, um ng-Muster zu verwenden, aber die Regex an einem Ort für die Konsistenz zu haben. Ich möchte Winkelkonstanten dafür verwenden, aber ich kann nicht ng-Muster bekommen, um den Wert zu nehmen, und ich kann nicht warum herausfinden.

--Was Ich habe done--

ich diese Antwort Angularjs dynamic ng-pattern validation regex finden tat dynamisch in ng-Muster für die Platzierung und ich versuchte, dass aber das Verfahren offenbar nicht für Winkelkonstanten zu arbeiten.

Ich habe versucht, die Regex als Strings speichern und im HTML konvertieren. Ich habe versucht, eine Funktion zu verwenden, die den Regex-Wert zurückgibt.

--jsfiddle die Issue--

https://jsfiddle.net/Michael_Warner/692deLsb/8/

Das Problem geht bis zu dieser Codezeile.

ng-pattern="patterns.zip" 

Wenn ich die Regex in ng-Muster einbetten direkt dann wird es funktionieren, wie Sie in der Geige sehen

ng-pattern="/^\d{5}(?:-\d{4})?$/" 

Antwort

3

Sie es auf zwei Arten tun:

1: Wie String wörtliche, wenn Sie Schrägstriche verdoppeln müssen:

.constant("formPattern", { 
    zip: new RegExp("^\\d{5}(?:-\\d{4})?$") 
}) 

2: Als regulärer Ausdruck:

.constant("formPattern", { 
    zip: /^\d{5}(?:-\d{4})?$/ 
}) 

Beide arbeiteten in Ihrer Geige.

+0

Das funktioniert es Ihnen danken. –

0

Fügen Sie einfach die Konstanten a $scope Variable

$scope.myPattern = /^\d{5}(?:-\d{4})?$/; 

und dann in html

ng-pattern=myPattern