gpt4 book ai didi

javascript - "A float with 2 decimal places, and only allows increments of 0.25"的正则表达式是什么

转载 作者:行者123 更新时间:2023-11-30 10:14:25 25 4
gpt4 key购买 nike

我需要一个正则表达式来匹配以下输入:

 .25
.50
.75
1.25. 1.50, 1.75 are allowed (increments of .25)
(2.0/2.00, 3.0/3.00, 4.0/4.00, 5.0/5.00 - not allowed)

允许的整数部分是1-9因此 10.00 或 10.25... 是不允许的

不允许的特殊输入是:0、0.0允许整数 1、2、3、4、5、6、7、8 和 9,而 1.0/1.00、 2.0/2.00, 3.0/3.00...等等都是不允许的

此外,允许在数字前没有正号或负号。

因此

0.25、0.50、0.75应该是不允许的(当然.75之后,只允许1个)

到目前为止,我必须满足上述条件的正则表达式是:

   /^[-+]?[0-9](\.[2|5|7]{1}[5|0]{1})?$/;

在我的 javascript 中我有:

  var catchfloat5 = /^[-+]?[0-9](\.[2|5|7]{1}[5|0]{1})?$/;
var catchint2 = /^[1-9]$/;

第二个正则表达式用于匹配整数 1-9。

在我的代码中:

   if(inputHours.match(catchfloat5) || inputHours.match(catchint2) ) { 
//alert("Correct, you entered float or an int");
return true;

上面的代码似乎完成了工作,但失败了,因为它允许以下输入:

0.250.500.75

它确实匹配 1.25、1.50、1.75 等等。

如何更正我的正则表达式以匹配:.25、.50 和 .75?我认为我遇到的问题是:我确实有一个正则表达式也可能匹配负十进制数。当我试图去掉正负符号时,我打破了表达方式。

我确实无法理解 ?性格也。而我的研究来自: http://www.regular-expressions.info/quickstart.html


我想要完成的是:匹配我上面描述的输入的正则表达式并在此过程中学习一些正则表达式的基础知识。

最佳答案

明确一点,您想要匹配 1 到 9.75 之间的 0.25 的任何倍数,其中整数不能有 .00 而一半必须有 .50?

如果是这样,你的正则表达式是:

/^[1-9](?:\.25|\.50|\.75|)$/

为了解释,这允许 1 到 9 之间的任何数字作为整数部分,然后是 .25.50.75 或者什么都没有。

如果这不是您想要的,那么请澄清您的问题,因为花了几分钟时间并进行了多次尝试才能理解这一点!

关于javascript - "A float with 2 decimal places, and only allows increments of 0.25"的正则表达式是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24677898/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com