网站上的联系表拒绝了我使用多年的电子邮件地址。我以为是因为我的TLD是.Email
,所以我将真实地址放在正文中,并将Wrong.Address@Nowhere.com
放在字段中。仍然声称无效。使其全部变为小写。仍然声称无效。删除期间。仍然拒绝。检查了他们的源代码,但在我看来,它应该已经接受了我尝试过的所有内容,除了第一个(TLD中有五个字符)。
<input id='Textbox-2'
data-sf-role="text-field-input"
type="email"
name="TextFieldController_0"
placeholder="Email"
value=""
pattern=\A[a-zA-Z0-9._%+-]+@(?:[a-zA-Z0-9-]+\.)+[a-zA-Z]{2,4}\z
class="form-control" />
(我添加了换行符,以节省很多水平滚动操作)。模式为何失败?难道不是用引号引起来吗?
答案 0 :(得分:0)
\A
和\z
是使用^
和$
的JS正则表达式不支持的锚点(分别是字符串的开头和字符串的结尾)。但是,HTML5 pattern
正则表达式由HTML5引擎处理,该引擎使用^(?:
和)$
包装模式,因此默认情况下会锚定模式。
您应确保从模式中删除了\A
和\z
:
pattern="[a-zA-Z0-9._%+-]+@(?:[a-zA-Z0-9-]+\.)+[a-zA-Z]{2,4}"