当正则表达式禁止它时,ng-pattern允许空格

时间:2015-07-14 20:43:13

标签: regex angularjs

ng-pattern允许使用以下模式的空格,我无法理解它为什么会这样做。

ng-pattern="/^[a-zA-Z\d\-\_]+$/"

我尝试过没有转义-_,结果是一样的:应用了类ng-validng-valid-pattern

我试图只允许a-z(大写和小写)以及破折号和下划线。这种模式似乎可以像regex101那样期待,所以这很令人困惑。

更新: 在空格后键入有效字符后,文本字段被标记为无效,但空格是第一个字符时则不是: 例如(不像这样硬编码," someText"以及"某些文本"在文本输入中输入):

<input> someText</input> //ng-valid
<input>some text</input> //ng-invalid

仍然很困惑为什么会这样。

1 个答案:

答案 0 :(得分:11)

角度自动修剪输入。您可以通过ng-trim =&#34; false&#34;

禁用它
<input type="text" ng-model="model" ng-trim="false" ng-pattern="/^[a-zA-Z\d\-\_]+$/"/>

请参阅https://docs.angularjs.org/api/ng/input/input%5Btext%5D