我正在尝试获取一个角度ng模式来检查用户名是否没有空格或特殊字符。如果输入空格或特殊字符,则以下形式返回 false。但是,一旦您输入 a-z、A-z 或 0-9,它就会变为现实。我尝试过 ng-pattern="/[^\s]+/" 和 \S 和 [^ ],但它们没有区别。
<form name="myform">
valid? {{ myform.$valid }}
<input type="text" name="username" ng-model="username" ng-pattern="/[a-zA-Z0-9^ ]/" required/>
</form>
这是扑通中的表格:http://plnkr.co/edit/6T78kyUgXYfNAwB4RHKQ?p=preview
尝试以下模式:
/^[a-zA-Z0-9]*$/
这只允许使用字母数字字符。
为了显示我正在寻找的具体答案,我已经有了嗅探器/^[a-zA-Z0-9]*$/
建议的模式,但角度似乎仍然忽略了前导/尾随空格。正如克里斯蒂安在评论中提到的:
Angular 将修剪输入模型,这意味着验证不会触发空格。您可以向输入添加
ng-trim="false"
来解决此问题。
请注意,默认情况下,Angular 试图通过静默修剪空格来保护您。就我而言,我希望用户知道尾随空格无效。
以防有人需要禁止用户在地址字段中输入电子邮件
ng-pattern="/^[^@]+$/"
<div ng-messages="vm.updateCC.mailingAddress.$error" ng-show="vm.updateCC.mailingAddress.$touched">
<p class="validation-message" ng-message="pattern">Please enter a valid address</p>
</div>