一个网站上的联系表格拒绝了我多年来一直使用的电子邮件地址。我认为这是因为我的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" />
(我添加了行符,以避免大量的水平滚动)。为什么这个模式会失败?会不会是没有用引号包围它呢?
发布于 2018-08-26 21:13:28
\A和\z是使用^和$的JS正则版不支持的锚点(字符串的开始和字符串的结束)。但是,pattern正则表达式是用HTML5引擎处理的,该引擎用^(?:和)$包装模式,因此默认情况下锚定模式。
您应该确保从模式中删除\A和\z:
pattern="[a-zA-Z0-9._%+-]+@(?:[a-zA-Z0-9-]+\.)+[a-zA-Z]{2,4}"https://stackoverflow.com/questions/52030222
复制相似问题