javascript - 为什么 HTML5 checkValidity() 返回的结果与 JavaScript regexp.test() 不同?

标签 javascript regex html checkvalidity

在 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() 不同的结果

最佳答案

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');

关于javascript - 为什么 HTML5 checkValidity() 返回的结果与 JavaScript regexp.test() 不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28149635/

相关文章:

javascript - jQuery 将元素 ID 转换为逗号分隔的字符串

javascript - 与API通信时如何修复404错误

java - 正则表达式替换撇号

java - 尝试匹配 Java 中几乎重复的模式

javascript - 通过 JavaScript 在同一浏览器中打开多个选项卡

javascript - 本地 HTML 文件的 cookie 保存在哪里?

javascript - 如何使用回调测量 JavaScript 代码的执行时间?

javascript - 如何正确应对 Silverlight 弃用?

ruby - 如何在包含字母和数字的行上检测到 "word"?

javascript - 如何使用 jQuery 验证插件在元素下方显示错误消息