【发布时间】:2013-06-22 08:49:51
【问题描述】:
这是我正在研究的模式:
var re = /(\d{1,2}\.(?=\d{1,2}))/;
我希望它返回的是一个或两位数(永远不会大于 24,因为它是一个 time mgmt 应用程序),它后面可能跟也可能不跟小数点一个或两个尾随数字,但不超过两个。
我不确定括号中的子字符串匹配是否与前瞻混合。我只是猜测并嵌套了它们。最终,如果我的语法没问题,我认为我唯一缺少的是如何建议该模式可能有也可能没有前导数字,并且可能包含或可能不包含带有试用数字的小数。
如果您需要更多信息,请告诉我。
更新,示例:
我们只处理时间,时间不会超过一天。 24 将是最高输入。
有效:
23.75
1.4
1
0.5
0
.2
无效:
1.897
%#$#@$#
Words
other characters
最新更新:
因为这是一个小数,所以 23.75 有效。我们计算的不是分钟,而是几分之一。
另外,为了记录,我尝试使用方法和条件进行验证,它让字母在小数点后通过。我已经决定使用正则表达式。
【问题讨论】:
-
你能举几个例子来说明你想为特定输入获得的输出吗?你确定分隔符总是
.并且从不说:?如果输入是123.456,您希望发生什么? -
我用示例更新了条目。
-
为什么要使用正则表达式
-
你想用 12.345 做什么?它是有效的,无效的,你是截断到 12.34 还是四舍五入到 12.35?你怎么能确定这个数字不会大于 24,但它可能是一个字符串?你想对
12.89PM做什么?12,45怎么样(欧洲人会这样写12.45)
标签: javascript regex validation floating-point