为什么 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');
在 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');