我在表单上有一个字段采用以下值:-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/