JavaScript中用于浮点数的正则表达式,包括可选的(多个)逗号和小数点。

3

我搜索了很多,但无法得出一个JavaScript中的RegEx,它允许浮点数具有以下特点:

  • 正数
  • 可选的,只允许一个小数点,精度可以是任意数字
  • 在小数点前可以有任意数量(0或更多)逗号,但小数点后不允许有逗号

匹配:

  • ,1
  • .0
  • 0
  • 1,0,0,0,
  • 1,,,,
  • 0.
  • 1,

不匹配:

  • .
  • ,
  • .0,
  • .,

请帮助我得到上述要求的正则表达式。

1个回答

0

看起来你想要这样的东西。

^(?=.*\d)(?!.*?\.[^.\n]*,)\d*(,\d*,?)*(\.\d*)?$

演示

  • (?=.*\d) 前瞻断言,表示必须存在一个数字。
  • (?!.*?\.[^.\n]*,) 断言在小数点后面不会有逗号存在。

非常感谢您的帮助!!它在我问题中提到的大多数测试用例中都运行良好。 :-) 但是我想让正则表达式也匹配1,,,,。我的意思是在小数点之前允许任意数量的逗号。 - Amateur
非常感谢你的帮助,@Avinash!它对我问题中提到的所有测试案例都有效。 :-) 但是我想要正则表达式也能匹配1,,,,。也就是说,在小数点之前允许任意数量的逗号。我不需要你列出的第三个断言。请帮忙。 - Amateur

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接