Javascript 文本框中需要两个单词,带有AngularJS

Javascript 文本框中需要两个单词,带有AngularJS,javascript,html,angularjs,validation,angularjs-ng-pattern,Javascript,Html,Angularjs,Validation,Angularjs Ng Pattern,我真的很挣扎。我需要强制用户只在一个文本框中写入名字和姓氏。 我使用AngularJS,我想使用ng模式验证文本字段。该字段应接受所有字符,需要两个单词。 这是输入: <input name="fistname_lastname" ng-model="fistname_lastname" ng-pattern='my_pattern' type="text"> 还有其他更好的方法吗。是的,您可以通过验证文本是否包含两个字符来执行此操作。ng模式将是更好的方法 在这里,您的html将

我真的很挣扎。我需要强制用户只在一个文本框中写入名字和姓氏。 我使用AngularJS,我想使用ng模式验证文本字段。该字段应接受所有字符,需要两个单词。 这是输入:

<input name="fistname_lastname" ng-model="fistname_lastname" ng-pattern='my_pattern' type="text">
还有其他更好的方法吗。

是的,您可以通过验证文本是否包含两个字符来执行此操作。
ng模式
将是更好的方法

在这里,您的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"/>
<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
}


希望这能对您有所帮助,谢谢。

谢谢您的帮助。但真正起作用的是这个正则表达式

\b([A-Z]{1}[a-z]{1,30}[- ]{0,1}|[A-Z]{1}[- \']{1}[A-Z]{0,1}  
[a-z]{1,30}[- ]{0,1}|[a-z]{1,2}[ -\']{1}[A-Z]{1}[a-z]{1,30}){2,5}

试试这个
/^(.*?[a-zA-Z]){2,}$/
“有更好的方法吗?”?“更好”这个词很有启发性,你介意换个说法吗?您还没有告诉我们您的解决方案在当前状态下有什么问题。为什么你觉得它不能让你满意?请在示例输出中包括实际行为和您想要的行为。是的,您是对的。我的意思是,如果可能或更好地使用,另一种解决方案,如html5,来做我需要的事情。要求用户在一个文本框中插入名字和姓氏。是的,这种模式适合我的需要。但我仍在为验证部分而挣扎。提交表单后,如何使用此模式停止提交?编写提交表单时将调用的
ng submit=“submit()”
方法,然后在该方法内使用
if($scope.form.$valid)//使用ajax else警报提交表单(“请填写必填字段”)谢谢你的帮助。提交部分,它的工作,但模式不是。在您的示例中,它总是验证文本框。@Liam在答案中检查我更新的小提琴。。现在一切都正常了
\b([A-Z]{1}[a-z]{1,30}[- ]{0,1}|[A-Z]{1}[- \']{1}[A-Z]{0,1}  
[a-z]{1,30}[- ]{0,1}|[a-z]{1,2}[ -\']{1}[A-Z]{1}[a-z]{1,30}){2,5}