正则表达式允许0-9之间的整数,最多两位小数

时间:2017-09-18 13:02:22

标签: regex

我有这个正则表达式^[0-9]\.[0-9]{1, 2}$。有效值应在0-9之间,并且只允许1或2个小数位,即

1.11 - 正确 1.1 - 正确

1.111 - 错误 22.11 - 错误

但是,我输入一个像112这样的值,它允许它!有任何更正吗?

1 个答案:

答案 0 :(得分:0)

你原来的正则表达式:

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

Explained

  • ^:必须开始一行
  • [0-9]:数字
  • \.:一个字面点
  • [0-9]:一个数字
  • {1, 2}:字面上匹配该字符串(这是由于您的空间)
  • $:必须结束一行

您的测试内容不会以数字结尾:

1.11 - CORRECT 1.1 - CORRECT
1.111 - WRONG 22.11 - WRONG

要匹配测试内容,您需要删除该空格和结束标记:

^[0-9]\.[0-9]{1,2}\s

我添加了一个必需的空白字符,以确保您没有其他点和数字,如1.11.1。这refined version explained

  • ......(见上文)
  • [0-9]{1,2}:一位或两位数字
  • \s:一个空白字符(通常是空格或制表符,通常不是换行符或回车符)