JavaScript中的表单验证数字范围(最小/最大)
Form validation numeric range (minimum/maximum) in JavaScript
有一个使用正则表达式将文本定义为数字的脚本:
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之间(。如何修改此正则表达式以完成并具有正确的参数?
对于后者,您不需要正则表达式:
function validateTextNumericInRange (textInputId) {
var textInput = document.getElementById(textInputId);
var value = parseInt(textInput.value, 10);
return (!isNaN(value) && value >= 3 && value <= 48);
}
更通用的解决方案:
function validateTextNumericInRange(textInputId, min, max) {
var textInput = document.getElementById(textInputId);
var value = parseInt(textInput.value, 10);
return (!isNaN(value) && value >= min && value <= max);
}
要测试一个数字的长度是否在3到48位之间,可以使用正则表达式/^[0-9]{3, 48}$/
。
正则表达式将是硬的和不灵活的,对于您的示例,它将是:
/^(?:[3-9]|[1-3][0-9]|4[0-8])$/
最好采用Vivins的解决方案。
我不是一个优秀的JavaScript开发人员,但我知道在Java中,您可以使用此语法来测试最小和最大长度:
[1-9][0-9]{2,4}
[1-9][0-9]{min,max}
function isInteger(value) {
if ((value.toString()).replace(/^-'d|'d/, "").length == 0) {
return true;
}
return false;
}
function integerInRange(value, min, max) {
if (isInteger(value)) {
if (parseInt(value, 10) >= min && parseInt(value, 10 <= max)) {
return true;
} else {
return false; // Not in range
}
} else {
return false; // Not an integer
}
}
integerInRange( 55, 3, 48); // Returns false
integerInRange("55", 3, 48); // Returns false
integerInRange( 25, 3, 48); // Returns true
integerInRange("25", 3, 48); // Returns true
在你的情况下,你需要这样称呼它:
integerInRange(document.getElementById(textInputId).value, 3, 48);
相关文章:
- 限制javascript变量的最小/最大整数
- 访问Highcharts系列的最小/最大值:afterSetExtremes不会激发
- 如何在引导日期时间选择器中限制最小-最大时间
- 关于如何将日期输入值与最小/最大日期范围进行比较的建议
- 在Gamemaker中用最小-最大值计算百分比
- JavaScript/Andercore获取对象中所有项的最小-最大值
- 使用crossfilter和dc.js绘制每一天的最小-最大值
- d3.js nvd3.js--获取y轴最小/最大值
- 快速获取对象属性中的最小/最大值
- 替换为正则表达式表示最小/最大十进制长度
- 如何在主干形式的整数文本字段上定义最小/最大验证
- JQuQuery中最小>最大值时的实时验证输入
- 如何为高图表的列设置最小/最大宽度
- 使用$scope变量设置Datepicker最小/最大日期
- 更改范围滑块的最小/最大属性并动态重绘
- 如何设置jQuery UI滑块的最小/最大间隔和值
- Regex Javascript电话号码验证最小-最大长度检查
- Highmaps最小/最大颜色未按预期工作
- 协助使用Javascript中的连接四的最小最大算法
- 如何在Javascript中的复杂对象数组中找到最小/最大值