javascript - 正则表达式匹配 2-10,但不匹配 99

标签 javascript regex numeric-ranges

我在表单上有一个字段采用以下值:-1、2-10、99

我有一个与答案 2-10 有关的业务规则。

我正在尝试编写一个匹配 2-10 但 99 的正则表达式,但我遇到了麻烦。

原表达:

^2|3|4|5|6|7|8|9|10$

失败,因为匹配了 99(从技术上讲,匹配了两次)。此外,线边界是我从未感到舒服的东西。我观察到他们在 expresso 中的行为与我在其他地方(例如 .net)中的行为不同。在此特定实例中,正则表达式在 javascript 中运行。无论如何,expresso 似乎忽略了它们(如果我将值放在括号中:

^[2|3|4|5|6|7|8|9|10]$

^[2-9]$

无论是“全部拼写”还是作为范围,如果我指定开始行/字符串结束行/字符串字符,expresso 永远不会返回任何匹配项(是的,我试图在第二种情况下分别匹配 10 个字符) .

我知道,我知道。如果您使用正则表达式来解决问题,那么您会遇到两个问题(并且大概他们会开始邀请 friend 过来,事情 1 和事情 2 样式)。我必须在这里使用;我可能会切换到案例陈述。但似乎我应该能够在这里使用正则表达式,这似乎是一件合理的事情。说到正则表达式,我还是很新手;

最佳答案

这显然是您不应该使用 RegExp 而应该使用数值计算的情况:

var num = parseInt(aNumber, 10);
if (num >= 2 && num <= 10) {
    alert("Match found!");
}

关于javascript - 正则表达式匹配 2-10,但不匹配 99,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/528807/

相关文章:

perl - 将数字值/范围字符串转换为实际值

c++ - 保护 C++ 变量免于溢出?如果值小于任何数据类型的 UpperBound

python - 在 Python 中解释数字范围

javascript - 如何修复 'TypeError: (images || []).forEach is not a function'

javascript - jquery将表单和变量放在一起

javascript - Vuelidate 验证多个电子邮件的逗号分隔列表

Javascript 遍历字符串寻找多个字符集

javascript - API 的响应返回数据,状态未定义 - React.JS

java - 无法使用对象数组显示表格,以便我能够使用 DT_RowId 标记行

javascript - 无法在 javascript 正则表达式中匹配 '£'(英镑)