为什么 HTML5 checkValidity() return 与 JavaScript regexp.test() 的结果不同?

Why does HTML5 checkValidity() return different results from JavaScript regexp.test()?

在 JS 中,我可以 运行:

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

其中 returns true 作为单个小写字符出现在字符串中的任何位置。

但是:

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

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

Returnsfalse

为什么 HTML5 checkValidity return 与 JavaScript regexp.test() 的结果不同?

A regular expression that the control's value is checked against. The pattern must match the entire value, not just some subset.

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

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