php - 如何确保用户输入的格式为“H:MM AM/PM, DURATION MIN/HR?
问题描述
我有一个用户输入,要求用户以这种格式输入时间。
<input type="text" name="time" placeholder="Type in this format: H:MM AM/PM, DURATION MIN/HR">
表单提交后,我需要一个 PHP 脚本来检查用户是否遵循这种格式H:MM AM/PM, DURATION MINS/HRS。以下是用户输入时必须遵循的数据格式示例:
E.g.
8:00 AM, 1 HR
3:00 PM, 20 MIN
11:00 AM, 15 MIN
如何确保用户使用 PHP 遵循这种格式?
解决方案
这将很难完全验证。也许可以使用正则表达式来做到这一点,但这会很复杂。另外,我认为这对于尝试键入它的人来说不是用户友好的。
从用户体验的角度来看,必须输入框要好得多——一个输入时间,一个输入持续时间,然后让用户输入数字。验证要容易得多,如果您使用 24 小时时间,那么 AM/PM 是多余的,MIN 也是如此。
这样的事情会让你的用户更快乐:
Time: <input type="time" name="time"/>
Duration: <input type="number" name="duration"/> MIN
PS你没有说为什么你需要这种特定的、深奥的格式,但大概如果你以后确实需要它来进行某些显示,你可以很容易地从用户给出的输入中重新创建它。
您还可以更轻松地验证用户在 PHP 中输入的值(当它们到达您的服务器时),以检查它们是有效的时间和数字。您可以使用此处的答案之一来验证时间字符串。您可以使用ctype_digit函数检查持续时间是否为有效整数。
我假设您不打算将它像那样存储在您的数据库或任何东西中,因为它在过滤、排序或以其他方式查询方面效率非常低。
推荐阅读
- python - 在 Python 中使用关键字查找 html 类名
- java - 有没有办法影响稍后将在 Java 中使用的语句?
- python - 在 Pandas 中按特定值连接行
- python - Web scrape and pull an attribute value instead of the text value out of td for the entire table beautiful soup
- python - python3中具有全局变量问题的多线程
- bash - 使用 bowtie2 对循环(for 循环)应用文件限制
- javascript - 在正文负载上使用 javascript 检查用户浏览器
- python - 二叉树迭代中序遍历
- typescript - 如何在方法中使用“this”创建类的新实例?
- python - 从python中的xml文件中提取特定对象