仅允许十进制数中的单个点

时间:2013-08-09 14:31:06

标签: javascript regex

如何修改此正则表达式以允许只有一个点的数字?

/[^0-9\.]/g

目前允许:

  • 0
  • 0.13
  • 0.13.1(这不应该是允许的)

6 个答案:

答案 0 :(得分:9)

你的正则表达式与你所说的匹配不符。你在字符类中使用了否定,而且没有任何量词。目前,它将匹配.以外的任何非数字字符。

根据您的要求,您可以使用此正则表达式:

/^\d+(\.\d+)?$/

答案 1 :(得分:4)

使比赛成为积极的比赛:

/^\d*(\.\d+)?$/

任意数量的数字,可选地后跟一个点和至少一个数字。但保持负面比赛是不值得的。

如果你想禁止一个空字符串(原始正则表达式不会这样做),你可以这样做:

/^(?=.)\d*(\.\d+)?$/

但你也可以检查一个空字符串,无论如何都看起来更好。

答案 2 :(得分:0)

您可以尝试以下正则表达式^ [ - +]?\ d *。?\ d * $

答案 3 :(得分:0)

我想这应该/^(\d*)\.{0,1}(\d){0,1}$//^(\d*)\.?(\d){0,1}$/

(\d*)表示小数点前的位数。

\.后跟{0,1}?将确保只有一个点。

(\d){0,1}小数点后只允许一位数。

答案 4 :(得分:-1)

尝试以下方法:

/^(\d*)(\.\d*)?$/g

答案 5 :(得分:-1)

尝试,

(value.match(/^\d+([.]\d{0,1})?$/))