将电话号码保存到Simple Schema / Collection2

时间:2016-02-11 04:18:58

标签: meteor meteor-autoform

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

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

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

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

答案 3 :(得分:1)

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

对于regEx解决方案

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"
            }
        }
    },