Javascript仅输入数字正则表达式

Javascript Input Numbers Only Regular Expressions

本文关键字:正则表达式 数字 输入 Javascript      更新时间:2023-09-26

我有一个RegEx验证,它只验证字段为数字。然而,只有当字符串的长度超过10位时,验证才会返回true。但如果小于10,比如说5,它将返回false。

这是我的代码:

function isNumeric(elem, helperMsg) {
    var numericExpression = /^[0-9]+$/;
    if (elem.value.match(numericExpression)) {
        return true;
    } else {
        alert(helperMsg);
        elem.focus();
        return false;
    }
}

function formValidator() {
    var phone = document.getElementById('home');
    if (isNumeric(phone, "Please enter a valid Australian House Phone Number")) {
        console.log("Passed phone number");
        if (isNumericPostal(postal, "Please enter a valid Postal Code of Australia it should be 4 digits only")) {
            return true;
        }
    }
}
}

您还在isNumeric函数中混合验证逻辑和UI逻辑。这是不好的做法。/^'d{10,13}$/.test(yourValue)将返回true/false-在这种情况下应该更好。

function isNumeric(val) {
    return /^'d{10,13}$/.test(val);
}
function formValidator() {
    var phone = document.getElementById('home');
    if (!isNumeric(phone.value)) {
       alert("Please enter a valid Australian House Phone Number");
       phone.focus();
       return false;
    }
    // do your other logic in similar manner
    return true;
}

这就是您所需要的:

/^[0-9]{0,13}$/

这将验证输入字符串的长度是否在0到13位之间。所以,即使是9、10位数,它也会通过

如果您也有一些最小数字长度,那么相应地更改{0,13}

在两者之间,http://www.regexr.com/是创建regex并测试它们的好站点。

使用此正则表达式^('d){9,13}$而不是