如何修改此正则表达式以允许只有一个点的数字?
/[^0-9\.]/g
目前允许:
答案 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})?$/))