编写 NG 模式以禁止空格和特殊字符



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

最新更新