javascript - 使用 ng-pattern 的多封电子邮件的正则表达式

标签 javascript regex angularjs email

我正在尝试使用 ng-pattern 过滤掉大多数主要电子邮件地址。

这是我的正则表达式,诚然我不太精通。

<input type="email" name="email" ng-model='email.userInput' 
placeholder="Please enter your work email" 
ng-pattern="/^[A-Z0-9._%+-]+@(yahoo\.com|gmail\.com|msn\.com|hotmail\.com|live\.com)/">

我只是想在上面列出的电子邮件上失败......只是寻找朝着正确方向迈出的一步。

最佳答案

将无效电子邮件域的交替组更改为否定前瞻 ((?!...)):

^[A-Z0-9._%+-]+@(?!yahoo\.com|gmail\.com|msn\.com|hotmail\.com|live\.com)

Demo

<小时/>

详细来说,环视是一个零宽度断言,这意味着它实际上不匹配任何字符。由于这是一个否定的前瞻,一旦我们匹配 @,我们就会检查以确保它后面没有 yahoo.com 等。有效,我们实际上可以简化很多(因为 [A-Z0-9._%+-]+ 可能无法涵盖广泛的电子邮件,而 `type="email"应该验证这一点为了我们)。我个人会使用something like this :

@(?!(?:yahoo|gmail|msn|hotmail|live)\.com|$)

这只会匹配 @ 符号,前提是它们后面不跟 yahoo/gmail/etc、.com 和字符串结尾。

关于javascript - 使用 ng-pattern 的多封电子邮件的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24020392/

相关文章:

javascript - 我需要在 Express 中附加这些嵌套函数的列表,但这些项目不会存储

java - 如何从 JavaScript 调用带有 JSP Servlet 参数的操作?

javascript - Parse.com - 无法将特定用户添加到角色

javascript - ng-如果 Angular 不起作用

javascript - Angular 2,尝试使用 http.get 时出现 localhost/null 错误?

javascript - Mongoose findOne 内部循环

javascript - 为什么 (new RegExp ('[1-9]' )).test ('10' ) 返回 true?

javascript - 在正则表达式中包含 ö、ä、ü 等特殊字符

javascript - 在顺序很重要的 javascript 中,是否有更 Eloquent 方法来编写字符串和符号替换?

javascript - Angular ,ng 类,内部有重复函数