用于验证十进制数的正则表达式
本文关键字:正则表达式 十进制数 验证 用于 | 更新日期: 2023-09-27 18:36:38
正则表达式应符合以下条件。点之前和之后的元素数可以是任意的。只允许 1 个点,并且仅在第一个位置允许使用负号。我不需要逗号。
例:
1
-1
-1.
1.
1.2
-.2
-0.2
000.300
上述所有表达式都应结果为 true。
所以如果我分手..
- 首先是可选的负号。
- 点前的零位或多位数字。
- 点是可选的。最多可以发生一次。它也可以是纯整数。
- 点后 O 或更多数字。
任何帮助将不胜感激。
你可能想要的是:
^-?'d*'.?'d*
这会给你一个可能的负号(-?
),
后跟任意数量的数字('d*
),
后跟一个可能的小数点 ( '.
),
后跟小数点后任意数量的尾随数字 ('d*
)。
由于您只想验证它是否是有效的浮点数,@MarcinJuraszek有一个很好的观点,您可能不想在这里使用正则表达式。
1) 第一位的可选负号:
^ : 字符串的开头
- : 减号
? :使前面的字符可选
2) 零位或多位数字
/d : 数字
* :匹配前一件事的任意多(包括零)
3) 可选点
. : 点
? :使点可选
4) 点后 0 或更多细节
/d : 数字
* :匹配前一件事的任意多(包括零)
所以一起:^-?/d*.?/d*
这是我
的解决方案
优点
- 用户可以指定精度
- 接受逗号或点
- 接受负值
- 接受整数
缺点
- 不适用于 .0 或 0。 :(
[-]?
''d{1,18}(?:[,.]''d{1,2})?$