【问题标题】:Accept the number 0 at the beginning of the input接受输入开头的数字 0
【发布时间】:2017-09-04 14:19:13
【问题描述】:

我使用 symfony 框架,我有一个名为“PostalCode”形式的输入字段,它是一个整数类型,我喜欢接受数字开头的数字 0,因为例如 01256 ?有什么解决办法吗?谢谢大家的回答

【问题讨论】:

  • 那么不是整数,而是数字字符串
  • 整数是一个数值,通常没有表示格式。这意味着前导零已经消失(除非您在显示值时再次明确添加它们,但它们没有存储),以及千位分隔符。如果您希望人们输入前导零,请将其设为字符串字段。
  • 自己试试,例如使用 regex101.com,为在 第一个位置接受 0 的邮政编码创建一个正则表达式应该不会那么糟糕
  • @GolezTrol 添加您的评论作为答案
  • @GolezTrol 将您的解决方案作为答案,您是对的:我可以将其更改为字符串值,而不是添加约束以仅接受数字

标签: php html forms validation input


【解决方案1】:

整数是一个数值,没有表示格式。这意味着前导零以及千位分隔符都消失了。

您可以在显示值时再次显式添加格式,但它不会存储作为整数的一部分。因此,整数输入字段将允许数字输入,但通常会丢弃此类格式信息。

因此,如果您希望人们输入前导零,请将其设为字符串字段,以便他们可以输入任何内容。您可以为输入验证提供额外的规则(例如必须匹配的正则表达式),以鼓励人们输入有效的输入,而不仅仅是一些随机字符。

【讨论】:

    【解决方案2】:

    您可以使用正则表达式来检查 PostalCode 的格式,并允许在第一个位置出现 0,如下所示:#^[0-9]{5]$#

    • 表达式以数字开头,以数字结尾:#^$#
    • 0 到 9 之间的数字:[0-9]
    • 邮政编码有 5 位数字:{5}

    希望对你有所帮助。

    【讨论】:

    • 但如果我尝试提交 01234 为例会出现问题 -> 在数据库中保存的值如下所示:1234(没有 0)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-10
    • 1970-01-01
    • 1970-01-01
    • 2016-05-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多