Safari不支持HTML5模式...下面的输入模式工作正常,但需要可行的后退。
<input type="password" required pattern="(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$" name="password" id="password">
后退尝试......(来自2011年的另一个答案)
var input = document.getElementsByName('password')[0];
input.addEventListener('change', function() {
console.log('Is valid?', input.value.search(new RegExp(input.getAttribute('pattern'))) !== -1);
}, false);
答案 0 :(得分:2)
问题在于你正在听的事件。在这种情况下,事件change
与blur
基本相同。
更改您收听的事件keyup
或input
:
input.addEventListener('input', function() {
console.log('Is valid?', input.value.search(new RegExp(input.getAttribute('pattern'))) !== -1);
}, false);