javascript - 检查数值或范围

标签 javascript regex

输入字段可以具有如下值:

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/

相关文章:

javascript - c# datetime 到带有新日期或数据解析的 javascript 日期

javascript - 递归阶乘函数如何知道何时停止

javascript - 基于 CheckBox 启用或禁用按钮

regex - Visual Studio Code - 删除包含条件的行

objective-c - 用于解析化学式的 RegEx

javascript - 直接在 Google Firestore 中获取 DocumentId

javascript - 在网页上进行文本替换的最简洁方法? (使用 GreaseMonkey)

java - 正则表达式用定界符拆分,同时保留定界符

javascript - Eloquent Javascript 正则表达式示例 : Why Is Exec Returning A Two-Item Array?

javascript - javascript函数中的CSS代码