我需要一个正则表达式来匹配以下输入:
.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-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.25 0.50 0.75
它确实匹配1.25、1.50、1.75等。
如何修正正则表达式以匹配:.25,.50和.75?我认为我的问题是:我确实有一个正则表达式,也可能匹配负十进制数字。当我尝试摆脱正号和负号时,我在破坏表达式。
我确实不了解角色的作用吗?性格也。我的研究来自:http : //www.regular-expressions.info/quickstart.html
我要完成的工作是:一个正则表达式,它与我上面描述的输入相匹配,并且在此过程中学习了一些正则表达式的基础。
尝试以下正则表达式:
/^(?:[1-9]|[1-9]?\.(?:25|50|75))$/
它匹配
如果您想匹配更多的数字和可选的前导符号,则可以
/^[-+]?(?:[1-9][0-9]*|(?:[1-9][0-9]*)?\.(?:25|50|75))$/
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句