我正在尝试获取角度ng-pattern来检查用户名是否没有空格或特殊字符。如果输入空格或特殊字符,则以下形式返回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
答案 0 :(得分:41)
尝试以下模式:
/^[a-zA-Z0-9]*$/
这只允许使用字母数字字符。
答案 1 :(得分:14)
为了表达我正在寻找的具体答案,我已经有了Sniffer /^[a-zA-Z0-9]*$/
建议的模式,但有角度似乎仍然忽略了前导/尾随空格。在评论中为Cristian mentions:
Angular将修剪输入模型,这意味着验证不会触发空格。您可以在输入中添加
ng-trim="false"
来解决此问题。
请注意,Angular会默认通过静默修剪空格来保护您。在我的情况下,我希望用户知道尾随空格是无效的。
答案 2 :(得分:-1)
万一任何人都需要禁止用户在地址栏中输入电子邮件
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>