我有一个正则表达式,它只接受具有以下模式的电子邮件。
@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/