Ich versuche ein eckiges ng-Muster zu bekommen, um zu überprüfen, ob ein Benutzername keine Whitespaces oder Sonderzeichen hat. Das folgende Formular gibt false zurück, wenn Sie Leerzeichen oder Sonderzeichen eingeben. Es wird jedoch wahr, sobald Sie a-z, A-z oder 0-9 eingeben. Ich habe versucht, ng-Muster = "/ [^ \ s] + /" und \ S und [^], aber sie machen keinen Unterschied.schreibe ein ng-Muster um Whitespaces und Sonderzeichen zu verbieten
<form name="myform">
valid? {{ myform.$valid }}
<input type="text" name="username" ng-model="username" ng-pattern="/[a-zA-Z0-9^ ]/" required/>
</form>
Hier ist die Form in einem zupfen: http://plnkr.co/edit/6T78kyUgXYfNAwB4RHKQ?p=preview
Das war's! Vielen Dank! Ein Hinweis: Vor der eckigen Version 1.1.0 wird das Modell getrimmt, sodass das Hinzufügen eines Leerzeichens vor oder nach dem String nicht false zurückgibt. –
@CraigMorgan Gern geschehen. Ich arbeite überhaupt nicht mit Angular, aber ich weiß, dass es eine Javascript-Bibliothek ist, und ich habe Ihnen einen gültigen regulären Ausdruck in Javascript zur Verfügung gestellt :) –
Nur dazu hinzuzufügen. Angular trimmt das Eingabemodell, was bedeutet, dass die Validierung nicht für Leerzeichen ausgelöst wird. Sie können der Eingabe einen 'ng-trim = "false" 'hinzufügen, um dies zu beheben. – Cristian