输入字段可以具有如下值:
23
23-45
不,我想更正该值:
string.replace(/[^\d-]/g,'');
但这并不能纠正这些值:
-45
23-
45-23
10-110
所有这些值都不正确(有效值是从 0-100(因为它们是百分比值),因此 110 无效)。因此,对于这种情况,我希望用户再次查看输入字段......
我想我必须为这些无效的情况创建第二个正则表达式,对吧?
最佳答案
如果百分比由整数表示,则返回 true 的函数,其中如果包含破折号,则第一个数字小于第二个数字,并且两个数字都在 0 到 100 之间:
function isValidPercentage(input) {
var mat = /^(\d+)(?:-(\d+))?$/.exec(input + "");
if (mat !== null && ((mat[2] === undefined && mat[1] < 101) || (mat[1] < mat[2] && mat[2] < 101))) {
return true;
}
return false;
}
Edit#1:如果任一数字大于 100,则强制返回错误
Edit#2:修复了错误,稍微清理了代码
关于javascript - 检查数值或范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26203186/