【问题标题】:Regex restricting 2 decimal places正则表达式限制 2 位小数
【发布时间】:2016-10-22 16:20:48
【问题描述】:

我经历了很多线程,对给定的问题有很多答案。但是有些我无法弄清楚我做错了什么。 我的要求是小数点后不匹配超过 1 个数字 并且也应该丢弃非十进制数字。 例如

有效

1.1
12.1
1234.1
123456.0
.1

无效

.12 
123
123.12

我写的是^([0-9]?\.?)+\.?[0-9]{1}$

当我尝试匹配 11.123123 时,我得到了匹配。我做错了什么?

【问题讨论】:

    标签: javascript c# regex


    【解决方案1】:

    此正则表达式适用于您的用例:^\d*\.\d$
    其中^\d* 匹配字符串开头的所有数字(* 运算符保持零个或多个),然后使用\. 转义.,最后\d$ 仅在结尾前有一个字符时匹配字符串

    【讨论】:

    • 在这个正则表达式中 .1 失败我的意思是小数点前没有数字,小数点后一个应该通过。
    • @sameer 已更正,我错误地使用了+ 而不是*。现在它匹配有效块内的所有值,而不匹配所有其他值
    【解决方案2】:

    这个应该做的:

    ^[0-9]+(\.[0-9])?$
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-11
      • 1970-01-01
      • 2013-04-15
      • 2022-11-12
      • 1970-01-01
      相关资源
      最近更新 更多