1

在 JS 中,我可以运行:

/[a-z]/.test('foo'); 

返回true,因为单个小写字符出现在字符串中的任何位置。

然而:

<input pattern="[a-z]" value="foo" required />

console.log(document.querySelector('input').checkValidity())

退货false

为什么 HTML5 checkValidity 从 JavaScript regexp.test() 返回不同的结果

4

1 回答 1

3

检查控件值的正则表达式。模式必须匹配整个值,而不仅仅是某个子集。

https://developer.mozilla.org/en/docs/Web/HTML/Element/Input

所以pattern="[a-z]"相当于/^[a-z]$/.test('foo');

于 2015-01-26T11:58:10.010 回答