2016-05-21 14 views
0

Derzeit verwende ich den folgenden Ausdruck für mein ngPattern-Attribut: /[^*]/ bedeutet, dass jede Eingabe zulässig ist, aber es muss mindestens ein Zeichen enthalten, das von * verschieden ist. Jetzt ergab sich eine zusätzliche Anforderung - die Eingabe muss nur numerisch sein.AngularJs Texteingabefeld regulärer Ausdruck

Gibt es eine Möglichkeit, diese beiden Anforderungen in einem einzigen regulären Ausdruck zu kombinieren? Ich kann es einfach nicht verstehen ... Oder sollte ich die Bedingungsprüfung zu meinem Controller verschieben, wo ich zwei reguläre Ausdrücke nacheinander programmgesteuert anwenden würde.

+1

uh, macht nicht "nur numerische" irgendwie die erste Anforderung obsolet? (eine Ziffer ist kein Stern) – sweaver2112

+0

Also, Женя, probiere '/ [0-9] /' oder '/ [^ 0-9] /' abhängig von deinem Code. –

+0

Zhenya________? – sweaver2112

Antwort

0

OK, fragte ich heute einen Kollegen von mir. Hier ist die richtige Lösung: /[\d*]*\d[\d*]*/

0

Soll die Eingabe numerisch sein, aber * ist auch erlaubt? Wenn ja, wird der Trick:

<input type="text" ng-pattern="[1-9\*]*"> 

Im Allgemeinen Sie die meisten Sachen in regex tun können, so gibt es keine Notwendigkeit, sie an die Steuerung zu übernehmen.

+0

Das würde für mich nicht funktionieren :-) \ * ist erlaubt, aber es ist nicht erlaubt, der einzige Typ von char in der Eingabe zu sein. * oder **** oder ******** sind nicht erlaubt. Aber abcd \ * fgh oder abcd \ * \ * \ * \ * fdh sind erlaubt. Deshalb habe ich/[^ *]/vorher benutzt. –