我正在尝试通过HTML5模式验证电子邮件输入。
输入字段必须遵循以下格式:
givenname.lastname@simonsays.domain
换句话说,我需要检查是否有一个字母串+一个点+另一个字母串+必须包含字符串simon
。
到目前为止我发现
pattern=".*simon.+"
但是,它只检查输入是否包含simon
。
如果您能帮忙,我们将不胜感激!
发布于 2018-06-08 03:42:17
您可以使用
pattern="\S+\.\S+@\S*simon\S*\.\S+"
该模式被解析为/^(?:\S+\.\S+@\S*simon\S*\.\S+)$/
并进行匹配
^
- start of string(?:
-非捕获容器的开始group\S+\.\S+
- 1+非空格字符,whitespace@
-a end char\S*
- end非空格charssimon
-a字面substring\S*
- chars\.
非空格dot\S+
-a chars)
- 0+非空格chars\.
-a dot\S+
- 1+非空格chars)
-容器末尾group$
- 0+ of 1+。HTML5:
input:valid {
color: black;
}
input:invalid {
color: red;
}
<form name="form1">
<input pattern="\S+\.\S+@\S*simon\S*\.\S+" title="Please enter an email address with 'simon' in the domain name!" placeholder="name.surname@domain.com" value="my.name@some-simon-here.com" />
<input type="Submit"/>
</form>
如果您想“控制”模式中的点,可以用除了空格和.
之外的任何字符匹配的[^\s.]
替换\S
。
https://stackoverflow.com/questions/50748623
复制相似问题