非常简单的电子邮件验证,需要确保在 LAST 句点之后有 2 个或更多字符
Very simple email validation, need to make sure that there are 2 or more characters after the LAST period
我使用的程序内置了自己的电子邮件验证,它只接受 LAST 句点后的最后一组字符为 2 个或更多字符的电子邮件。到目前为止我有这个正则表达式语句:
/^[^@]+@[^@]+\.[^@]+$/i
这对于我正在尝试做的事情来说是可以接受的,而不是试图在这里变得超级花哨。只想检查:
- @ 符号前面有一个不是 @ 符号的东西
- 最后一个之前有东西。
- 最后一个.之后至少有2个字符。
我只是不确定如何测试最后一个。而不是任何。 @ 符号后。
有什么帮助吗?
试试这个:
^[^@]+@[^@]+\.([^@.]{2,})$
你可以在这里测试:https://regex101.com/r/eK6fT4/1
基本部分是 [^@.]
:检查字符串的结尾,不包括 @
和 .
超过 2 个字符。
您可以在开始时以积极的前瞻性强加此检查:
/^(?=.*\.[^.]{2,}$)[^@]+@[^@]+\.[^@]+$/i
^^^^^^^^^^^^^^^^
见demo
(?=.*\.[^.]{2,}$)
前瞻将找到最后一个 .
,然后将尝试匹配 2 个或更多字符,而不是字符串末尾前的一个点。如果更少(只有 1 个),匹配将失败(将没有匹配)。
更新
由于您可能无法在字符串的 start/end 之外的其他地方使用具有 ^
/$
锚点的正则表达式,这是另一个解决方案:
^[^@]+@[^@]+\.[^@.]{2,}$
见demo
正则表达式细分:
^
- 字符串开头
[^@]+
- @
以外的 1 个或多个字符
@
- 文字 @
符号
[^@]+
- 除了 @
之外的 1 个或多个字符尽可能多(因此,没有 ee@.dd
是可能的)
\.
- 文字点
[^@.]{2,}
- 除了 @
和 .
之外的 2 个或更多字符,最多...
$
- 字符串结尾
我使用的程序内置了自己的电子邮件验证,它只接受 LAST 句点后的最后一组字符为 2 个或更多字符的电子邮件。到目前为止我有这个正则表达式语句:
/^[^@]+@[^@]+\.[^@]+$/i
这对于我正在尝试做的事情来说是可以接受的,而不是试图在这里变得超级花哨。只想检查:
- @ 符号前面有一个不是 @ 符号的东西
- 最后一个之前有东西。
- 最后一个.之后至少有2个字符。
我只是不确定如何测试最后一个。而不是任何。 @ 符号后。
有什么帮助吗?
试试这个:
^[^@]+@[^@]+\.([^@.]{2,})$
你可以在这里测试:https://regex101.com/r/eK6fT4/1
基本部分是 [^@.]
:检查字符串的结尾,不包括 @
和 .
超过 2 个字符。
您可以在开始时以积极的前瞻性强加此检查:
/^(?=.*\.[^.]{2,}$)[^@]+@[^@]+\.[^@]+$/i
^^^^^^^^^^^^^^^^
见demo
(?=.*\.[^.]{2,}$)
前瞻将找到最后一个 .
,然后将尝试匹配 2 个或更多字符,而不是字符串末尾前的一个点。如果更少(只有 1 个),匹配将失败(将没有匹配)。
更新
由于您可能无法在字符串的 start/end 之外的其他地方使用具有 ^
/$
锚点的正则表达式,这是另一个解决方案:
^[^@]+@[^@]+\.[^@.]{2,}$
见demo
正则表达式细分:
^
- 字符串开头[^@]+
-@
以外的 1 个或多个字符
@
- 文字@
符号[^@]+
- 除了@
之外的 1 个或多个字符尽可能多(因此,没有ee@.dd
是可能的)\.
- 文字点[^@.]{2,}
- 除了@
和.
之外的 2 个或更多字符,最多...$
- 字符串结尾