Javascript 自动格式化输入字段中输入的10位电话号码

Javascript 自动格式化输入字段中输入的10位电话号码,javascript,forms,autoformatting,Javascript,Forms,Autoformatting,在逻辑中,用于将10位电话号码自动格式化为以下格式(xxx)234-3456 console.log在console中显示正确的格式。您是否尝试过替换该行 console.log(number) 与 ?因为我在论坛上的贡献很少,所以我会回答 let phoneNumber=document.getElementById('phoneNumber'); phoneNumber.addEventListener('change',_formatPhoneNumber); phoneNumber.

在逻辑中,用于将10位电话号码自动格式化为以下格式(xxx)234-3456


console.log在console中显示正确的格式。

您是否尝试过替换该行

console.log(number)


因为我在论坛上的贡献很少,所以我会回答

let phoneNumber=document.getElementById('phoneNumber');
phoneNumber.addEventListener('change',_formatPhoneNumber);
phoneNumber.addEventListener('keyup',_formatPhoneNumber);
函数_formatPhoneNumber(evt){
让number=evt.target.value.replace(/[^\d]/g',)
如果(number.length==10){
编号=编号。替换(/(\d{3})(\d{3})(\d{4})/,“($1)$2-$3”);
}
//控制台日志(编号)/(123)456-6789
evt.target.value=编号;
}

那么问题出在哪里?您不会将该值设置回原位

_formatPhoneNumber(digit) {
    let number = digit.target.value.replace(/[^\d]/g, '')
    if (number.length == 10) {
        number = number.replace(/(\d{3})(\d{3})(\d{4})/, "($1) $2-$3");
    }
    console.log(number) // (123) 456-6789
}

console.log(number)
Document.getElementById("phoneNumber").value = number