我正在尝试设置具有以下要求的电话字段:
- 如果输入第一个字母,则可以出现“+”,否则则不会出现
- 只能是数字或空格
- 数字不能超过 11 个
我这样做对于数字和空格来说效果很好,但我不确定如何限制 11 个数字。
function validatePhone(phone) {
var filter = /^(?=.*\d)[\d ]+$/;
if (filter.test(phone)) {
return phone;
} else {
return phone.slice(0,-1);
}
编辑:
我不想将所有条目都计为 11。我只想计算数字而不是空格,并且总数应为 11 或 10
最佳答案
此建议的解决方案会删除所有空格,然后将字符串与可选的以 +
开头的字符串进行匹配,然后严格匹配 11 位数字。
document.querySelector('#phoneNumber1').addEventListener('input', function(e){
if (/^\+?\d{11}$/.test(e.target.value.replace(/ /g, ''))) {
console.log('valid');
} else {
console.log('invalid');
}
});
<input type="text" id="phoneNumber1">
关于javascript - 允许用户在文本框中仅添加空格且电话号码不超过 11 个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50375062/