JavaScript中的表单验证数字范围(最小/最大)

JavaScript中的表单验证数字范围(最小/最大),javascript,regex,validation,Javascript,Regex,Validation,使用正则表达式将文本定义为数字的脚本: function validateTextNumericInRange(textInputId) { var numRegex = /^[\d]+$/; var textInput = document.getElementById(textInputId); var valid = true; if (numRegex.test(textInput.value) == false) { alert('Va

使用正则表达式将文本定义为数字的脚本:

function validateTextNumericInRange(textInputId)
{
    var numRegex = /^[\d]+$/;
    var textInput = document.getElementById(textInputId);

    var valid = true;
    if (numRegex.test(textInput.value) == false) {
        alert('Value must be a number between 3-48');
        valid = false;
    }
    return valid;
}

需要使用此格式并提供最小/最大范围(目前为任意范围,例如3到48之间)。如何修改此正则表达式以完成并获得正确的参数?

我不理解您的问题。您的意思是想要一个介于3和48位之间的数字,还是数字的值必须介于3和48之间

对于后者,您不需要正则表达式:

function validateTextNumericInRange (textInputId) {
    var textInput = document.getElementById(textInputId);
    var value = parseInt(textInput.value, 10);

    return (!isNaN(value) && value >= 3 && value <= 48);
}
函数validateExtNumericinRange(textInputId){
var textInput=document.getElementById(textInputId);
var value=parseInt(textInput.value,10);

return(!isNaN(value)&&value>=3&&value=min&&value正则表达式将是硬而不灵活的,例如:

/^(?:[3-9]|[1-3][0-9]|4[0-8])$/

最好使用Vivins的解决方案。

我不是一个优秀的JavaScript开发人员,但我知道在Java中,您可以使用以下语法测试最小和最大长度:

[1-9][0-9]{2,4}
[1-9][0-9]{min,max}

整数和十进制数还是仅仅整数?别忘了为你的parseInt调用添加基数,对于介于3和48之间的数字。刚刚说服我的“上级”不要使用正则表达式来完成此任务。谢谢你的解决方案。你的上级想使用正则表达式来完成此任务?O_Othery有一些关于正则表达式的Json规则,但我设法说服了他们。你的解决方案工作得很好,我向他们演示和解释后,他们很满意。谢谢!看起来你应该接受这个答案,@ROberimagine您有一个字符串,其中包含一周的年数,您希望在转换为整数之前在早期阶段对其进行检查。我的案例!谢谢:
^(?[1-9]|[1-4][0-9]|[5][0-3])$
integerInRange(document.getElementById(textInputId).value, 3, 48);
/^(?:[3-9]|[1-3][0-9]|4[0-8])$/
[1-9][0-9]{2,4}
[1-9][0-9]{min,max}