如何更改数字输入的格式

How do I change the format of digit inputs

本文关键字:格式 数字输入 何更改      更新时间:2023-09-26

基本上,我想将一个人的输入从 0## 更改为 (0#)##,im 使用的事件是 onblur

        function numberChange(){
            var check = document.getElementById("number").value;
            var regCheck = /^[0-9]+$/; 
            if (check != 10 || !regCheck)
            {
                alert("Please input your 10 digit mobile number")
                return false;
            }
            else if (check == 10 || regCheck)
            {
                return true;
            }
        }

你的regCheck应该是^'(0'd')'d{8}$

演示

更新:

这个正则表达式验证字符数,您可以在代码中省略长度检查:

function numberChange(){
    var check = document.getElementById("number").value;
    var re = new RegExp(/^'(0'd')'d{8}$/);
    if (re.test(check)) {
        return true;
    }
    else {
        alert("Please input your 10 digit mobile number")
        return false;
    }
}

这将检查 10 位数字,第一个数字为零,并且所有输入都是数字。一旦所有这些通过,代码将向其添加"("和")"。此方法会根据用户错误输入号码的方式给出特定错误。

<html>
<body>
Phone number: <input type="text" id="number" onblur="checkNumber()">
<script>
function checkNumber() {
    var x = document.getElementById("number").value;
    // Check for 10 digits.
    if(x.length != 10) {
        alert('The number must be 10 digits.');
        return false;
    }
    // Make sure the first digit is 0.
    if(x.charAt(0) != 0) {
        alert('The first digit must be 0.');
        return false;
    }
    // Make sure all digits are numbers and not characters.
    if(isNaN(x) == true) {
        alert('All digits must be numbers.');
        return false;
    }
    // If here then everything else passed so add the '(' and ')' to the number.
    document.getElementById("number").value = '(0' + x.charAt(1) + ')' + x.substring(2, 10);
}
</script>
</body>
</html>