ng-pattern
允许以下模式的空格,我不明白为什么它会这样做。
ng-pattern="/^[a-zA-Zd-_]+$/"
我试过没有转义-
和_
,结果是相同的:类ng-valid
和ng-valid-pattern
应用。
我试图只允许a-z(大写和小写)和破折号和下划线。该模式似乎像我期望的那样在regex101上工作,所以这很令人困惑。
更新:当在空格后输入有效字符时,文本字段被标记为无效,但当空格是第一个字符时不会被标记为无效:(不是像这样硬编码的,"someText"one_answers"some text"被输入到文本输入中):
<input> someText</input> //ng-valid
<input>some text</input> //ng-invalid
还是很困惑为什么会这样
Angular会自动裁剪输入。你可以通过ng-trim="false"来禁用它
<input type="text" ng-model="model" ng-trim="false" ng-pattern="/^[a-zA-Zd-_]+$/"/>
见https://docs.angularjs.org/api/ng/input/input%5Btext%5D
我认为这是因为ng模式会首先修剪您的输入。所以<input> someText</input> //
其实和<input>someText</input>
是一样的