4

正则表达式应符合以下条件。点之前和之后的元素数量可以是任意的。仅允许 1 个点,并且仅在第一个位置允许负号。我不需要逗号。

例子:

1
-1
-1.
1.
1.2
-.2
-0.2
000.300

以上所有表达式都应为真。

所以如果我分手..

  1. 首先是一个可选的负号。
  2. 点之前的零个或多个数字。
  3. 点是可选的。最多可发生一次。它也可以是纯整数。
  4. 点之后的 O 或更多数字。

任何帮助将不胜感激。

4

3 回答 3

5

你可能想要的是这样的:

^-?\d*\.?\d*

这将为您提供一个可能的负号 ( -?),
后跟任意数量的数字 ( \d*),
然后是可能的小数点 ( \.),
然后是小数点后的任意数量的尾随数字 ( \d*)。

由于您只想验证它是否是有效的浮点数,@MarcinJuraszek 有一个很好的观点,您可能不想在这里使用正则表达式。

于 2013-10-22T21:31:42.073 回答
2

1) 首先是一个可选的负号:

^ : 字符串的开始

- :减号

? :使前面的字符可选

2) 零位或多位数字

/d:数字

* : 匹配前一个事物的多个(包括零个)

3) 可选点

. : 点

? : 使点可选

4)点后有0个或更多细节

/d:数字

* : 匹配前一个事物的多个(包括零个)

所以一起:^-?/d*.?/d*

于 2013-10-22T21:19:43.273 回答
0

这是我的解决方案

优点

  • 用户可以指定精度
  • 接受逗号或点
  • 接受负值
  • 接受整数

缺点

  • 不适用于 .0 或 0。:(

    [-]?\d{1,18}(?:[,.]\d{1,2})?$

于 2014-08-21T11:40:31.487 回答