【问题标题】:Regular expression to match a number range in JavaScript正则表达式匹配 JavaScript 中的数字范围
【发布时间】:2013-04-23 22:11:03
【问题描述】:

我在使用 JavaScript 正则表达式时遇到问题。我想匹配 1 到 5 的实数。精度为两位数。我的代码是,但它不起作用。

function validate_prosjek(nmb)
{
    var pattern= new RegExp(/[1-4]\.[0-9][0-9]|5\.00/);

    return pattern.test(nmb);
}

它可以识别大于 5 的实数。

【问题讨论】:

  • 请注意,这些都与 jQuery 无关,这都是 Javascript 功能。这些信息应该可以帮助您下​​次搜索要查找的内容。
  • 在我的机器上工作。使用regexpal.com 测试
  • @RobertHarvey 它无法工作 - 它的限制性不够,并且无法忽略数字两端的任何额外数字。
  • @MikeM 是的,你是对的(叹气)

标签: javascript regex


【解决方案1】:

您需要使用^$“锚定”您的正则表达式以分别匹配字符串的开头和结尾:

var pattern = /^([1-4]\.[0-9][0-9]|5\.00)$/;

您还需要转义.,因为它是正则表达式中的特殊字符,如果正则表达式已经在/.../ 语法中,则无需调用new RegExp

【讨论】:

  • @MikeM 好的,确实如此 - 我找到了一个不起作用的测试用例。
  • /^[1-4]\.[0-9][0-9]|^5\.00$/
  • 最终版本。工作正常。在第二个数字为 5 且数字大于 10 的情况下,您会失败,例如 15.00 25.00 等等
  • @BodoHombah 不,就像 Ansgar 和 MikeM 指出的那样,您需要围绕这两种选择的小组。
  • 过去五分钟的版本没有这个问题。您必须拥有() 组。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-26
  • 1970-01-01
  • 2013-07-14
  • 1970-01-01
相关资源
最近更新 更多