电子邮件的正则表达式,但不允许以“.co”结尾的地址
Regular expression for email but disallow address ending with `.co`
我有这个有效电子邮件地址的正则表达式,效果很好:^(?=[\w\s])\s*[-+.'\w]+@[-.\w]+\.[-.\w]{2,}\s*$
但是,用户有时会输入像“john@gmail.co”这样的地址。我可以从我的正则表达式中排除“co”,但我仍然想允许“john@example.co.uk”、see here.
我查看了 this post,但我不知道如何将其包含在我当前表达式的 [-.\w]{2,}
部分中。
如何更改我的正则表达式以禁止在电子邮件地址末尾使用“.co”?
您可以在开始时不使用前瞻来编写模式:
^\s*[-+.'\w]+@\w+(?:[-.]\w+)*\.(?!co\s*$)[a-z]{2,}\s*$
请注意 [-+.'\w]
和 \w
限制了有效电子邮件地址的范围。
模式匹配:
^
字符串开头
\s*[-+.'\w]+@
匹配可选的空白字符并重复字符 class 中列出的任何字符,直到匹配 @
\w+(?:[-.]\w+)*
在 @ 之后以匹配的 1+ 个单词字符开始并可选择重复 .
或 -
和 1+ 个单词字符
\.(?!co\s*$)
匹配一个点并使用否定前瞻断言不 co
和可选的空白字符,直到 string 结束
[a-z]{2,}\s*
匹配 2 个或更多字符 a-z 和可选的空白字符
$
字符串结束
看到一个Regex demo
如果您不想允许匹配前导空白字符,您可以省略模式开头和结尾的 \s*
。
我有这个有效电子邮件地址的正则表达式,效果很好:^(?=[\w\s])\s*[-+.'\w]+@[-.\w]+\.[-.\w]{2,}\s*$
但是,用户有时会输入像“john@gmail.co”这样的地址。我可以从我的正则表达式中排除“co”,但我仍然想允许“john@example.co.uk”、see here.
我查看了 this post,但我不知道如何将其包含在我当前表达式的 [-.\w]{2,}
部分中。
如何更改我的正则表达式以禁止在电子邮件地址末尾使用“.co”?
您可以在开始时不使用前瞻来编写模式:
^\s*[-+.'\w]+@\w+(?:[-.]\w+)*\.(?!co\s*$)[a-z]{2,}\s*$
请注意 [-+.'\w]
和 \w
限制了有效电子邮件地址的范围。
模式匹配:
^
字符串开头\s*[-+.'\w]+@
匹配可选的空白字符并重复字符 class 中列出的任何字符,直到匹配 @\w+(?:[-.]\w+)*
在 @ 之后以匹配的 1+ 个单词字符开始并可选择重复.
或-
和 1+ 个单词字符\.(?!co\s*$)
匹配一个点并使用否定前瞻断言不co
和可选的空白字符,直到 string 结束
[a-z]{2,}\s*
匹配 2 个或更多字符 a-z 和可选的空白字符$
字符串结束
看到一个Regex demo
如果您不想允许匹配前导空白字符,您可以省略模式开头和结尾的 \s*
。