2017-01-06 4 views
1

Ich habe eine Anforderung für ein Eingabefeld, das Zahlen, Alphabete und Sonderzeichen wie #, $,%,^usw. erlauben sollte. Aber mit nur einer Bedingung, dass das erste Zeichen dass ich in das Textfeld gebe, sollte kein Sonderzeichen sein.Muster, das den Benutzer auf die Eingabe von Sonderzeichen für das erste Zeichen beschränkt

Beispiel:

  1. @ Test123 --Invalid Charakter
  2. -Test @ 123 --Valid Charakter
  3. T @ est123% --Valid Charakter

ich schon versucht, diese ng-pattern="/^([a-zA-Z0-9]+)([a-zA-Z0-9 &()[email protected]&\-=\\|,.\/?\s]+)$/" Aber funktioniert nicht.

+0

Sie nicht das '@' und '%' Symbole auf den zweiten nicht hinzugefügt Zeichenklasse. Vielleicht wird ein besserer Ausdruck wie folgt aussehen ['/^[a-zA-Z0-9][A-Za-z0-9_!-,.-\/:[email protected][-\"{-~-]*$/ '] (https://regex101.com/r/0O6koU/1) –

+1

BTW, wenn es dir egal ist, welche Zeichen es nach dem ersten gibt, benutze 'ng-pattern ="/^ [a-zA-Z0 -9]/"'. Vergessen Sie nicht, 'ng-trim = "false" 'hinzuzufügen, wenn Sie keine führenden/nachgestellten Leerzeichen im Eingabefeld zulassen möchten. –

Antwort

2

Versuchen Sie dieses

ng-pattern="/^[a-zA-Z0-9]+[^]*$/"

[a-zA-Z0-9]+ bedeutet eine von Buchstaben oder Zahlen und

[^]* bedeutet alles

+0

Nur aus Neugier: warum nicht '^ [\ w & [^ _]]. * $'? Natürlich, wenn '_ 'nicht ausgeschlossen werden muss, brauchen Sie die Kreuzung nicht. –

Verwandte Themen