小数点后两位的Javascript正则表达式模式

小数点后两位的Javascript正则表达式模式,javascript,regex,Javascript,Regex,它应该接受 00.00, 0.0, 00.25, 00.36, 00.56,, 222.25, 222.25, 2222.25 不应该接受 000.25, 0000.25您可以使用此 pattern = new RegExp('([0-9]+([.][0-9]{1,2})?|[.][0-9]{1,2})'); ^-字符串的开头 (?:(?!0{3,}.*)-在开始时避免超过2零的条件 \。\d+-匹配,后跟一个或多个数字 $-字符串结尾 使用以下方法: ^(?:(?!0{3,}).*)\.

它应该接受 00.00, 0.0, 00.25, 00.36, 00.56,, 222.25, 222.25, 2222.25

不应该接受 000.25, 0000.25

您可以使用此

pattern = new RegExp('([0-9]+([.][0-9]{1,2})?|[.][0-9]{1,2})');
  • ^
    -字符串的开头
  • (?:(?!0{3,}.*)
    -在开始时避免超过
    2
    零的条件
  • \。\d+
    -匹配
    ,后跟一个或多个数字
  • $
    -字符串结尾

使用以下方法:

^(?:(?!0{3,}).*)\.\d+$
说明

在点
\.
之前,它接受两个(
\
)中的任何一个:

  • ^[0-9]
    代码以0到9之间的任意数字开头
  • [1-9]+
    然后,1和9之间的数字可以任意多
或:

  • ^0{0,2}
    代码最多以两个零开头
试试这个:

^([0-9][1-9]+|0{0,2})\.[0-9]+$
(?
请注意锚定
(?和
(?!)
。如果您愿意,可以省略锚定,但锚定将使您的图案匹配,即使线条包含数字以外的噪声。
(?坚持
X
不在匹配之前。
(!X)
坚持
不在匹配之后


[如果您想坚持认为
X
确实在前面和/或后面,那么您可以改为使用
(?如果您的值不能以零开始,您可以使用:

这将符合:

  • ^
    字符串的开头
  • (?:
    非捕获组
    • (?:
      非捕获组
      • `0{1,2}|[1-9]\d*匹配0 1-2次或数字1-9和0+次数字
    • )?
      关闭捕获组并将其设置为可选
    • \.\d{1,2}
      匹配一个点和1-2个数字
    • |
    • [1-9]\d*
      匹配数字1-9,后跟数字的0+倍
  • 关闭非捕获组
  • $
    字符串的结尾

如果您确实希望允许前导零,可以在第二次替换之前添加匹配的0+乘以零
0*

^(?:(?:0{1,2}|[1-9]\d*)?\.\d{1,2}|[1-9]\d*)$

它应该接受00222.25吗?它应该接受02.25吗?很有趣的是,堆栈溢出上的正则表达式问题如何促成了一场竞赛——一场竞赛,看谁能以最快的速度编写出匹配的正则表达式。这些问题中的大多数可能以某种方式重复,但我们无论如何都要竞赛,因为这很有趣。你将如何限制“.”之前的0的数量y
[0-9]{1,2}|……
请注意0。您能描述允许接受/拒绝字符串的条件吗?字符串的格式应为00.00到5000.00。应接受0,0.0,00.00、.1,0.01,00.120125.254999.9950005000.00(最大长度为7,包括点[。])请help@MithunS那么你的意思是像这样?或者像这样@MithunS,你可以选择第一部分,如果你已经学会了这些东西?我在哪里可以学会这个复杂的东西?但是一个问题是我不能在角度反应式表单控制中设置这个模式:(例如,这是两个很棒的站点和
^(?:(?:0{1,2}|[1-9]\d*)?\.\d{1,2}|[1-9]\d*)$
^(?:(?:0{1,2}|0*[1-9]\d*)?\.\d{1,2}|[1-9]\d*)$