2017-07-06 81 views
0

我需要验证人的身高英尺和英寸,而不使用单引号或双引号。这是我要寻找一个例子:正则表达式验证高度没有撇号

  • 508 ==> 5' 8"

零在这一要求被用作占位符。此外,我需要检查有效英寸,但必须这样做。有占位符:

  • 08 ==>8英寸有效
  • 8 ==>8英寸无效(缺少占位符)
  • 13 ==>无效(11是最大值)

英尺和英寸一起:

  • 511 ==> 5'11" (有效)
  • 512 ==> 5'12" (无效,应写为600)
  • 513 ==> 5'13" (无效,应写为601)

我曾尝试以下:

  • ^(\ d {1,5})((\ s?)( - ?)(\ s?)([0-9] |(1 [0-1])))?$

但这不检查占位符也不处理大于12的数字。

感谢任何帮助解决此问题!

+0

“它也不处理数量大于12。”大于12的数字是否有效?如果它们无效,那么你不希望正则表达式匹配它们。如果他们是,那么你这样做。你的正则表达式不匹配大于12的数字,这似乎是正确的。 – Welbog

+0

正确,513不符合要求,512也不符合。当我引出这个问题时,我应该发现这一点。 –

回答

1

尝试这种情况:

^[0-9]*((0[0-9])|(1[01]))$ 

这意味着:

  • [0-9]* 0或多个0-9个字符
    • 0[0-9]随后00〜09
    • 1[01] OR 10至11

Try it here.

+0

工作!非常感谢!我总是对正则表达式感到困惑。 –

0

如何:

^\d{0,1}0[1-9]|1[0-2]$