Javascript 带有angularjs的正则表达式问题

Javascript 带有angularjs的正则表达式问题,javascript,html,angularjs,Javascript,Html,Angularjs,我正在尝试使用正则表达式验证电子邮件地址。它似乎根本没有做任何验证。当我加载页面时,由于$pristine,Submit按钮被禁用,但当我键入一封信时,该按钮即被启用。此外,我知道regex目前只接受大写字母。以下代码是我的表单: <form name="myForm" ng-hide="email" > Insert Email : <br/> <input type="text" name="email" ng-pattern="/^[A-Z0-9._

我正在尝试使用正则表达式验证电子邮件地址。它似乎根本没有做任何验证。当我加载页面时,由于$pristine,Submit按钮被禁用,但当我键入一封信时,该按钮即被启用。此外,我知道regex目前只接受大写字母。以下代码是我的表单:

<form name="myForm" ng-hide="email" >

Insert Email :    <br/>

<input type="text" name="email" ng-pattern="/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]
{2,4}$/" ng-model="insert_email"  required> 

<br/>  
<button ng-hide="email" 
type="submit"  
ng-disabled="myForm.email.$pristine || myForm.email.$invalid">Submit</button>  

</form>

插入电子邮件:

提交

我不确定,但我认为问题可能出在正则表达式本身。

取出myForm.email.$pristine和myForm.email.$invalid中的电子邮件 看起来像:

 myForm.$pristine 


也可以尝试使用ng required而不是required,这似乎是两件事。ng模式似乎需要表达式而不是字符串属性

因此,如果要使用
内联表达式
,则需要将其包装为字符串

像这样:

ng-pattern="'^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$'"
此外,您的正则表达式似乎存在一些问题。我把它改成这样:

ng-pattern="'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$'"
它似乎起作用了


如果它能帮助您,请检查此项。我尝试了您的代码,但在输入某些文本时,它没有激活提交按钮。你能为此制作一个演示吗?我用它来验证电子邮件。
ng-pattern="'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$'"