我正在使用它来限制用户输入数字。我希望他只输入a,b,c,d,e等字母
,但效果相反。
<input type="text" id="name" name="name" oninput="this.value = this.value.replace(/[A-Za-z]*/, '');" class="form-control" placeholder="Your name" required>
答案 0 :(得分:0)
使用/[0-9]/, ''
<input type="text" id="name" name="name" oninput="this.value = this.value.replace(/[0-9]/, '');" class="form-control" placeholder="Your name" required>
答案 1 :(得分:0)
您尝试过类似的事情
this.value.replace(/[^A-Za-z]*/, '')
?
答案 2 :(得分:0)
我建议改用HTML5的pattern
属性,并使用相应的:invalid
CSS修饰符标记无效字段。
区别在于用户可以输入数字,但无法提交表单。这样,他/她就知道出了什么问题并可以纠正他/她的错误。
演示:
input:invalid {border: 2px solid red;}
<form>
<input type="text" id="name" name="name" placeholder="Your name" pattern="[^\d]+" required>
<input type="submit" />
</form>
您还可以添加自定义验证消息:
document.addEventListener('DOMContentLoaded', function() {
document.querySelectorAll('[data-invalid]').forEach(function (input) {
input.addEventListener('invalid', function () {
input.setCustomValidity(input.dataset.invalid);
});
input.addEventListener('input', function () {
input.setCustomValidity('');
})
});
});
input:invalid {border: 2px solid red;}
<form>
<input type="text" id="name" name="name" placeholder="Your name" pattern="[^\d]+" data-invalid="Your name cannot contain numbers!" required>
<input type="submit" />
</form>