【问题标题】:Saving a telephone number to Simple Schema / Collection2将电话号码保存到 Simple Schema / Collection2
【发布时间】:2016-02-11 16:13:49
【问题描述】:

我正在使用具有简单架构和集合2 的自动表单。在我的表格中,我收集了一个电话号码。我住的电话号码以 0 开头。当它保存到数据库时,0 被删除。我怎样才能阻止这种情况发生?

phone: {
  type: Number,
  optional: true,
  autoform: {
    afFieldInput: {
      type: "tel"
    }
  }
}

【问题讨论】:

    标签: meteor meteor-autoform


    【解决方案1】:

    根据定义,数字存储时没有前导零 - 0123 不是有效数字。您要么需要在获取数据时添加前导零,要么将值存储为字符串。

    【讨论】:

    • 太棒了。这样可行。我如何阻止他们写信?
    【解决方案2】:

    将其保存为字符串而不是 type: String 或在屏幕上显示时使用前导零对其进行格式化。如果您还存储来自其他语言环境的数字并且您不知道它们使用什么格式,则后者会更难。

    【讨论】:

      【解决方案3】:

      使用字符串并在其上添加正则表达式验证器

      phone: {
        type: String,
        regEx: /^0{1}\d{10}$/, // or something like this
      }
      

      【讨论】:

        【解决方案4】:

        感谢所有帮助。仅供可能遇到类似问题的人参考,请参阅下面的代码。 @corvid 建议使用正则表达式,快速谷歌显示了澳大利亚数字的解决方案。它似乎运作良好。再次感谢大家!

        Link 用于正则表达式解决方案

        phone: {
                type: String,
                regEx: /^\({0,1}((0|\+61)(2|4|3|7|8)){0,1}\){0,1}(\ |-){0,1}[0-9]{2}(\ |-){0,1}[0-9]{2}(\ |-){0,1}[0-9]{1}(\ |-){0,1}[0-9]{3}$/,
                optional: true,
                autoform: {
                    afFieldInput: {
                    type: "tel"
                    }
                }
            },
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-04-04
          • 2014-05-09
          • 1970-01-01
          • 2017-10-06
          • 2018-10-17
          • 1970-01-01
          相关资源
          最近更新 更多