【问题标题】:regex compare two numbers正则表达式比较两个数字
【发布时间】:2008-11-18 13:45:36
【问题描述】:

我能以某种方式比较正则表达式中的两个数字吗? 我想要对 10-12 正确但对 12-10 不正确的正则表达式。我的意思是 10 必须小于 12。 我想用 Javascript 来做。

【问题讨论】:

  • 我想你会想要更好地描述你需要的东西,或者更多的例子。
  • Jeff's 回答这个!!
  • 正则表达式用于匹配模式,而不是检查数值。用正则表达式找到一个可能的字符串,然后用你的宿主语言(Javascript,不管)检查它的数值。

标签: javascript regex numbers compare


【解决方案1】:

如果输入总是 X-Y 的形式,那么为什么不使用 split() 函数以 '-' 作为分隔符,然后将两部分与 >

您不能使用 RegExps 比较数值。

【讨论】:

  • +1 用于确定提问者真正想要什么的精神力量。
  • 您可以使用正则表达式提取数字;你不能做比较。正则表达式不是通用的问题解决工具。
  • 我想我知道他的意思,但我花了很长时间才做出你已经回答的回复:)
【解决方案2】:

我不会为此使用正则表达式。我会在运算符上拆分字符串,然后根据我找到的运算符比较两个结果数字(我假设 10+1212+10 都是合法的)。

【讨论】:

  • 我的意思是10必须小于12
  • 正则表达式用于匹配模式,而不是比较值。我只是拆分字符串并使用 来比较两个结果数字。
【解决方案3】:

这里的问题是您试图将两个问题合二为一。

正则表达式擅长语法(即识别数字),但在语义(即识别含义)方面很垃圾。所以正则表达式肯定会帮助你识别x-y,但是你要求太多,然后继续推理xy之间的关系。

正如经常引用的那样;

有些人在遇到 问题,想“我知道,我会用 正则表达式。”现在他们有了 两个问题。 (JWZ)

或者更确切地说,您现在拥有三个。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-08
    • 1970-01-01
    • 2019-07-10
    • 1970-01-01
    • 2011-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多