是的,您也可以通过指令来执行此操作,但仅用于验证是否仅包含两个字符的文本ng-pattern将是更好的方法。
在这里,您的 html 将使用(.*?[a-zA-Z]){2,}此模式。
HTML
<input type="text" ng-model="fistname_lastname" max-length="30"
ng-pattern="/^(.*?[a-zA-Z]){2,}$/" placeholder="add new todo here"/>
工作小提琴
更新
如果您想阻止表单提交,那么您无需担心。Angular 在内部为你管理这个。每当您提到ng-pattern任何表单字段时,角度都会为该字段创建对象(字段应该具有name和ng-model属性),该对象负责特定字段的有效性。由于ng-patternregx 不满意,因此角度使该字段为invalid,意味着它附加 ng-invalid-pattern&ng-invalid类。结果表格也变得无效。现在,如果您可以查看表单对象,您会发现该表单是通过在 html 上invalid使用语法获得的。form.$valid
HTML
<form name="form" ng-submit="submit()">
<input type="text" ng-model="firstname_lastname" size="30" ng-pattern="/^(.*?[a-zA-Z]){2,}$/" placeholder="add new todo here"/>
<button type="submit">Submit</button>
</form>
控制器
$scope.submit = function(){
if($scope.form.$invalid) //here you can stop use from submitting for by checking validity
alert('Form is invalid'); //form is invalid
else
alert('Form is valid');//here you can do actual submit to server
}
更新小提琴
希望这可以帮助你,谢谢。