我有这个regex /^(0|[1-9]\d*)(\.\d+)?$/
它允许所有十进制和整数。
我需要它把所有小于91的数字加起来。
我怎样才能做到这一点?
请帮帮忙
发布于 2021-05-12 09:30:32
整数或小数小于 91可以这样实现:
^(?:0|[1-8]\d?|90?)(?:\.\d+)?$请看在线演示。
^ -启动线锚.(?: -开放第一个非捕获组:0|[1-8]\d?|90? -匹配零或 1-8和可选数字或9与可选零.) -关闭第一非捕获组。(?: -开放第二非捕获组:\.\d+ -文字点和1+数字.)? -关闭第二个非捕获组,并使它可选。$端线锚.编辑:如果您不介意按照"00“或"00.0000”匹配双零,可以使用:
^(?:\d0?|[1-8]\d?)(?:\.\d+)?$或者,甚至更少地使用负面展望:
^(?!9[1-9])\d\d?(?:\.\d+)?$发布于 2021-05-12 09:34:20
带着你所展示的样品,请试一试。
^(?:[0-9]|[0-8][0-9]|90)(?:\.\d+)?$或也可以缩短如下:
^(?:[0-8]?[0-9]|90)(?:\.\d+)?$解释:添加了上面的详细说明。
^(?: ##Matching from starting of value and starting a non-capturing group here.
[0-9]|[0-8][0-9]|90 ##Matching either 0 to 9 OR till 89 OR 9 here.
) ##Closing non-capturing group here.
(?:\.\d+)?$ ##In a non-capturing group matching dot followed by 1 or more digits keep it optional at the last of value.奖金解决方案:只基于我的假设,如果您想要匹配额外的零,但仍然小于91,然后尝试以下。
^(?:0+)?(?:[0-9]|[0-8][0-9]|90)(?:\.\d+)?$发布于 2021-05-12 09:28:59
那这个呢?
^(90|[0-8][0-9])$只需匹配90或00直到89。
https://stackoverflow.com/questions/67500786
复制相似问题