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

@ 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} 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/

10-10 21:58