正则表达式允许数字和一个点 - 例如它不应该允许 1.1

RegEx to allow numbers and only one dot - E.g. it should not allow 1.1

我希望我的小时输入字段只允许数字到 2nd 小数点(只有一个点的数字)。

我将此表达式用于相同的 /^[0-9]+(\.[0-9]{1,2})?$/,这允许 1.1.,但不应允许

模式匹配正确的输入类型。输入的类型应设置为文本:

<input type="text" ng-pattern="/^[0-9]+(\.[0-9]{1,2})?$/" />

type="number" 不支持正则表达式验证检查。

更新

要仅允许 float/integer 值介于 1 和 60 之间,请使用

/^([1-9]|[1-5][0-9]|60(\.0{1,2})?$)(\.[0-9]{1,2})?$/

the regex demo

  • ^ - 刺痛开始
  • ([1-9]|[1-5][0-9]|60(\.0{1,2})?$) - 以下之一:
    • [1-9] - 从 19 的数字(不允许 0
    • [1-5][0-9] - 从 10 到 59 的数字
    • 60(\.0{1,2})?$ - 60 可以选择后跟 .0.00,然后字符串的结尾应该跟在
    • 之后
  • (\.[0-9]{1,2})? - 可选(1 或 0). 后跟 1 或 2 个任意数字...
  • $ - 字符串结尾