当前位置:  开发笔记 > 编程语言 > 正文

Javascript百分比验证

如何解决《Javascript百分比验证》经验,为你挑选了3个好方法。

我正在使用一个正则表达式来验证从0到100的百分比并允许两个小数位.

有没有人知道如何做到这一点或知道有良好的网站,其中有常见的正则表达式的例子用于javascript中的客户端验证?

@Tom - 感谢您的提问.理想情况下,没有前导0或其他尾随字符.

感谢所有到目前为止回复的人.我发现这些评论非常有趣.



1> Greg Hewgill..:

我不是将正则表达式用于此,而是将用户输入的数字转换为浮点值,然后检查所需的范围(0到100).尝试使用正则表达式进行数值范围验证几乎总是错误的工具.

var x = parseFloat(str);
if (isNaN(x) || x < 0 || x > 100) {
    // value is out of range
}



2> Alexander Pr..:

我提出这个:

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

它使用此部分匹配100,100.0和100.00

^100(\.0{1,2})?$

和数字,如0,15,99,3.1,21.67使用

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

请注意禁止前导零,但允许尾随零(但不超过两位小数).



3> mlarsen..:

这让我想起了一篇老博客:Alex Papadimoulis(The Daily WTF成名),他讲述了以下故事:

"一位客户要我建造并安装一个定制的搁架系统.我正处于需要钉钉的地步,但我不知道该用什么来钉入钉子.我应该使用旧鞋子还是一个玻璃瓶?"

你会如何回答这个问题?

    这取决于.如果你想在干墙上砸一个小的(20磅)钉子,你会发现使用瓶子更容易,特别是如果鞋子很脏的话.但是,如果你试图将一个沉重的钉子钉入一些木头,那么请选择鞋子:手中的碎瓶.

    你的建筑方式存在根本性的错误; 你需要使用真正的工具.是的,它可能涉及到工具箱(甚至是硬件商店)的旅行,但以正确的方式这样做会在产品的生命周期中节省大量的时间,金钱和恶化.在了解施工基础知识之前,您需要停止建设物资.

这是一个问题,大多数人认为提出正确的正则表达式来解决问题是一个挑战,但是说使用正则表达式使用错误的工具进行工作会好得多.

尝试使用正则表达式验证数值范围时的问题是,如果允许范围的要求发生更改,则很难更改.今天的要求可能是验证0到100之间的数字,并且可以为不会让你的眼睛流血的那个写一个正则表达式.但下周的要求可能会发生变化,因此允许0到315之间的值.好运改变你的正则表达式.

Greg Hewgill给出的解决方案可能更好 - 尽管它会将"99fxx"验证为"99".但考虑到可能确实存在的情况.

推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有