我不是一个计算机科学的人,我想弄清楚如何防止用户输入多个小数点。例如,我如何阻止某人进入3..5?防止多个小数点
防止多个小数点
回答
问题中给出的背景实际上并不存在,但正确的方法是尝试使用您正在使用的任何语言来解析输入,如果失败,则拒绝它。但是,如果你想有一个正则表达式:
^\d+\.\d+$ # allows numbers with a single decimal point;
fails if it doesn't have one
^\d+(\.\d+)?$ # allows numbers with a decimal point or without one
注意这些正则表达式允许在小数点两侧的数字的数量不受限制。如果你想指定的位数,就可以使用{m...n}
代替+
量词:
^\d{1,3}\.\d{1,3}$ # allows numbers from 0.0 to 999.999
编辑:如果你想允许的形式.25
的输入像tchrist建议,你可以使用方法:
^\d*\.\d+?$
为什么不简单检查它是否有2个小数点,如果是,拒绝? '。* \ .. * \ .. *' –
@Joseph因为那么'$$$$。!!!'将是有效的 – NullUserException
我以为他只是想防止2个小数点。看起来OP不知何故知道他只有数字和句号。好吧,我猜,安全而不是抱歉。 –
对于浮点数,即###。##,你可以匹配
^[0-9]+[.]{1}[0-9]{1,2}$
这将允许任意数量的数字,后跟一个小数(必需),后面跟一个或两个数字。
'[。]''后面'{1}'的含义是什么? – NullUserException
不,这不允许任何数字的数字。 '/ ^(?:\。\ d {1,2} | \ d +(?:\。\ d {0,2})?)$/x'确实。 – tchrist
@tchrist为什么你把'?:'放在你的捕获组中? (我知道它是什么) – NullUserException
试试这个:
m{
^(?: \. \d{1,2} # eg: ".25"
| \d+ # eg: "2343409823409823049823094823094820389402984230948"
(?:
\. \d{0,2}
)? # eg: "186282.42"
)
$
}x
- 1. REACT - 防止小数点后2位小数点后的输入
- 2. 防止点击加载多个动作
- 3. 防止多次点击一个链接
- 4. 防止多个弹出窗口点击
- 5. CustomDialog - 防止多次点击
- 6. 防止用户,大于3个小数
- 7. 防止从做小数
- 8. 防止小部件在短时间内多次点击
- 9. 防止数组中的多个条目
- 10. 防止多个Ajax帖子
- 11. 防止多个Ajax查询
- 12. 防止多个API调用
- 13. 防止多个滑块
- 14. 防止多个upvote Angularjs
- 15. 防止多个Ajax提交
- 16. Django多个站点:防止跨站点认证
- 17. 如何防止生成多个NSOperations的多次点击
- 18. 如何防止多次点击多个表单提交的PHP
- 19. 如何在解析JSON时防止删除小数点?
- 20. 防止小数进入一列 - Oracle
- 21. 如何防止用户输入小数?
- 22. 防止在jquery中单击多个点击!
- 23. 如何防止快速点击多个控件?
- 24. 如何防止多次点击一个锚标签按钮
- 25. javascript如何防止输入字段中的多个点
- 26. 防止一个数据环
- 27. d3-force防止单个节点移动
- 28. JToolBar防止最小化
- 29. 防止表调整大小
- 30. 防止wx.StaticBitmap调整大小
搜索'..'并适当地惩罚他们。 – tchrist
@tchrist:不会抓住像“3.14.159”这样的东西。 –