Javascript仅输入数字正则表达式

Javascript仅输入数字正则表达式,javascript,regex,validation,Javascript,Regex,Validation,我有一个正则表达式验证,验证字段是否仅为数字。但是,只有当字符串长度超过10位时,验证才会返回true。但是如果小于10,比如说5,它返回false 这是我的密码: function isNumeric(elem, helperMsg) { var numericExpression = /^[0-9]+$/; if (elem.value.match(numericExpression)) { return true; } else {

我有一个正则表达式验证,验证字段是否仅为数字。但是,只有当字符串长度超过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;
        }
    }
}
}
使用这个regex
^(\d){9,13}$
代替

这是您需要的:

/^[0-9]{0,13}$/
这将验证输入字符串的长度是否在0到13位之间。所以即使它是9,10个数字,它也会通过

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


Between是一个创建正则表达式并对其进行测试的好站点。

您还在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;
}

预期的结果是什么?是否允许电话号码的位数小于10位?我想您需要
/^[0-9]{10,}$/
我只需要最多13位的数字。我不要求数字正好是13位,因为它可以是9、10、11等。然后它将是
^\d{10,13}$
请澄清正则表达式返回true的条件。它可以是9、10,11@stribizhev所以,它也会在9、10、11元素上返回真值?我不知道OP需要什么,不要问我。:)我不会回答这些不清楚的问题,只会发表评论。@Stribizev抱歉,hahaThanks我会用这个答案,因为它不仅解决了我的问题,而且看到了更好的解决方法。代码以前是由开发人员编写的,所以我必须重新编写所有代码。