写一个ng-pattern来禁止空格和特殊字符

时间:2013-10-17 10:09:43

标签: regex angularjs

我正在尝试获取角度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

3 个答案:

答案 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>