有谁知道如何正确设置重点关注的电话号码格式 1-777-777-7777?当我在表单字段中输入我的电话号码时,该号码的位置如下:“777-777-777”。如何将数字定位为“1-777-777-7777”并删除更大的破折号。
以下是我的尝试。我格式化了电话号码,并验证了可以通过验证的一定数量的号码。请让我知道我做错了什么。感谢您的时间。我见过其他形式,但没有特别按照这个问题的要求。如果有人有资源随时提供。
function phoneFormat(input) {
// Strip all characters from the input except digits
input = input.replace(/\D/g, '');
// Based upon the length of the string, we add formatting as necessary
var size = input.length;
if (size == 0) {
input = input;
} else if (size < 4) {
input = '(' + input;
} else if (size < 7) {
input = '(' + input.substring(0, 3) + ') ' + input.substring(3, 6);
} else if (size < 10) {
input = '(' + input.substring(0, 3) + ') ' + input.substring(3, 6) + '-' + input.substring(6, 10);
} else {
input = input
}
return input;
}
function validatePhone(phoneNumber) {
var phoneNumberPattern = /^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$/;
if (phoneNumber == "") {
return false;
} else {
return phoneNumberPattern.test(phoneNumber);
}
}
答案 0 :(得分:0)
我认为我的处理方式有点不同,就像这样。
const re_notADigit = /\D/g;
const re_stripTrailing = /[-)(]+$/g;
function phoneFormat(val) {
let input = val.replace(re_notADigit, '');
let size = input.length;
if (size >= 11) {
input = input.slice(0, 11);
size = 11;
}
let prefix = "";
if (size === 11) {
prefix = input[0] + "-";
input = input.slice(1);
}
return `${prefix}(${input.slice(0,3)})-${input.slice(3,6)}-${input.slice(6)}`
.replace(re_stripTrailing, "");
}
&#13;
Enter phone number: <input oninput="value=phoneFormat(value)">
&#13;