此问题在此处已有答案:
How can I validate an email address using a regular expression?(80个答案)
去年关闭了。
我正在寻找一个基本电子邮件验证使用HTML5模式。到目前为止,我有以下,但我挣扎与所需的规则如下,特别是规则1和3。
条件:
1.我只需要涵盖包含**字母(a-zA-Z)、数字(0-9)、下划线(_)、点/句点(.)、破折号(-)的电子邮件地址。
1.我只需要涵盖标准的商务电子邮件地址,例如名.姓@ domain.com、名.姓@ domain.co.uk、名.姓@ domain.de、名-第二名.姓@域部分1-域部分2.de。
1.不需要包含亚洲或阿拉伯字符,也不需要包含此处未列出的字符。
1.不需要涵盖不包含点/句点的电子邮件。
必要规则:
1.第一个字符不能是下划线、点号/句点或短划线。
1.最后一个字符不能是下划线、点号/句点或破折号。
1.一行中不能包含两个点/句点。
1.不能包含空格(也不能作为首字符或末字符)。
我的方法(无效):
<input type="email" id="email" minlength="10" pattern="^(?!^\.\_\-)(?!.*[-_.]$)[a-zA-Z0-9\.\_\-]+$" required autocomplete="off">
有人能告诉我如何正确地做这件事,并对单个部件进行解释吗?
1条答案
按热度按时间guicsvcw1#
您可以使用此选项:
说明:
^
-起点锚点\w+
- 1+个字字符(a-z
、A-Z
、_
)(?:[.-]\w+)*
-可选(0+)非捕获组:点或破折号,后跟1个以上的字符@
-文字@
\w+
- 1+字字符(?:[.-]\w+)*
-可选(0+)非捕获组:点或破折号,后跟1个以上的字符(?:\.+[a-zA-Z]{2,})+
-所需的(1+)非捕获组:点,后跟2+个字母字符(对于TLD)$
-末端锚点请考虑在
@
符号之前支持+label
序列。许多人使用该序列对电子邮件进行分组:这里是一个工作示例。在HTML5中不需要jQuery代码,添加在这里是因为代码片段似乎不支持它。如果电子邮件无效,jQuery代码会添加一个红色边框。在HTML5环境中,如果电子邮件无效,输入文本将是红色的。
第一个