javascript - 正则表达式问题模式不起作用

标签 javascript jquery regex

我有一个正则表达式,它只接受具有以下模式的电子邮件。

@stanford.edu.uk 或 word.edu.word

在这里

/(\.edu\.\w\w\w?)$/

这似乎仅在 .edu 后跟“.xx”时有效(例如:school.edu.au 或 college.edu.uk)。我需要它也适用于以 .edu 结尾的电子邮件(例如:school.edu 或 student.college.edu)

我试过这个:

/(\.w+\.w+\.edu)$/

谁能帮忙?

最佳答案

您的 (\.edu\.\w\w\w?)$ 模式需要一个 . 并且在它之后的 2 到 3 个字符处字符串,因此它无法匹配末尾带有 .edu 的字符串。

您可以使用

修复模式
\.edu(?:\.\w{2,3})?$

参见 regex demo

详情

  • \.edu - .edu 子串
  • (?:\.\w{2,3})? - 可选的非捕获组匹配 1 次或 0 次出现
    • \. - 一个点
    • \w{2,3} - 2 到 3 个字符
  • $ - 字符串结尾。

注意 \w 匹配字母、数字和 _。如果您只想匹配字母([a-zA-Z] 以仅处理 ASCII,或使用 ECMAScript 2018 支持的 \p{L},您可能需要精确此位code> Unicode 属性类(不适用于旧浏览器),或构建您自己的 pattern to support all Unicode letters )。

另外,考虑通过 How to validate an email address using a regular expression?

关于javascript - 正则表达式问题模式不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50941566/

相关文章:

jquery - 如何像 Stackoverflow 中那样显示弹出消息

javascript - $ ("#slider_range").slider 不是函数

javascript - 使用 Javascript 的字符串中的正则表达式和英语缩写(i'm -> I'm not I'M)

javascript - 打开文档时在 PDF 中运行 JavaScript

javascript - 下面的 jquery 循环有什么不同

javascript - 无法滚动我的汉堡菜单

regex - 如果两个正则表达式相同或相等,应该如何继续证明(或找到)?

javascript - JavaScript 正则表达式中包含的拉丁字符

javascript - IE 中使用 ES6 箭头函数的语法错误

javascript - 以下 Ramda/函数编程模式是否遵循约定/最佳实践?