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

125*_*748 4 regex angularjs

ng-pattern 允许具有以下模式的空格,我无法理解为什么会这样做.

ng-pattern="/^[a-zA-Z\d\-\_]+$/"
Run Code Online (Sandbox Code Playgroud)

我试过没有逃避-_,结果是相同的:类ng-validng-valid-pattern应用.

我试图只允许az(大写和小写)和短划线和下划线.这个模式看起来像我在regex101上所期望的那样工作,所以这很令人困惑.

更新:在空格后输入有效字符后,文本字段被标记为无效,但是当空格是第一个字符时,文本字段被标记为无效:例如(不是真的像这样硬编码,"someText"和"some text"被输入到文字输入):

<input> someText</input> //ng-valid
<input>some text</input> //ng-invalid
Run Code Online (Sandbox Code Playgroud)

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

mil*_*era 11

角度修剪输入自动.您可以通过ng-trim ="false"禁用它

<input type="text" ng-model="model" ng-trim="false" ng-pattern="/^[a-zA-Z\d\-\_]+$/"/>
Run Code Online (Sandbox Code Playgroud)

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