Javascript字符串替换在长度满足而不是instantanoeus之前不会生效
我有一个Javascript字符串替换在长度满足而不是instantanoeus之前不会生效,javascript,Javascript,我有一个html元素,用于输入电话号码。它具有执行此操作的onkeyup和onkeydown事件: document.getElementById("phone").value = document.getElementById("phone").value.replace(/(\d{3})(\d{3})(\d{4})/, "$1-$2-$3"); 现在,当我使用它时,它工作得很好,但是它只在用户键入10个数字后进行更改我要寻找的是在用户键入时显示格式的即时更新 我不知道如何修改代码以使其正常
html元素
,用于输入电话号码。它具有执行此操作的onkeyup
和onkeydown
事件:
document.getElementById("phone").value = document.getElementById("phone").value.replace(/(\d{3})(\d{3})(\d{4})/, "$1-$2-$3");
现在,当我使用它时,它工作得很好,但是它只在用户键入10个数字后进行更改我要寻找的是在用户键入时显示格式的即时更新
我不知道如何修改代码以使其正常工作。您可以使用此常规表达式随时更新值:
document.getElementById("phone").value = document.getElementById("phone").value.replace(/(\d{3})(\d{0,3})(\d{0,4})/, "$1-$2-$3");
它会在键入时立即添加破折号并用数字填补空白不确定,但这可能是因为
{3}
+{3}
+{4}
?请提供您的onkeydown和onkeydup函数以及html,以便更好地调试仅使用占位符属性如何?@Daenu这就是我需要帮助的地方。若要修改此项,不建议在输入时更改用户输入,因为这可能会导致一些混乱。但是,如果您真的想这样做,您需要更改您的正则表达式(/(\d{3})(\d{3})(\d{4}/
),因为现在除非您有10位数字,否则它不会触发。