用于验证十进制数的正则表达式

本文关键字:正则表达式 十进制数 验证 用于 | 更新日期: 2023-09-27 18:36:38

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

例:

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

上述所有表达式都应结果为 true。

所以如果我分手..

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

任何帮助将不胜感激。

用于验证十进制数的正则表达式

你可能想要的是:

^-?'d*'.?'d*

这会给你一个可能的负号(-?),
后跟任意数量的数字('d*),
后跟一个可能的小数点 ( '. ),
后跟小数点后任意数量的尾随数字 ('d* )。

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

1) 第一位的可选负号:

^ : 字符串的开头

- : 减号

? :使前面的字符可选

2) 零位或多位数字

/d : 数字

* :匹配前一件事的任意多(包括零)

3) 可选点

. : 点

? :使点可选

4) 点后 0 或更多细节

/d : 数字

* :匹配前一件事的任意多(包括零)

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

这是我

的解决方案

优点

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

缺点

  • 不适用于 .0 或 0。 :(
    [-]?

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