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

时间:2018-06-20 06:25:32

标签: 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)$/

有谁能帮忙吗?

1 个答案:

答案 0 :(得分:1)

您的(\.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} Unicode属性类(不适用于较旧的浏览器),或者构建拥有pattern to support all Unicode letters)。

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