【发布时间】:2016-02-11 16:13:49
【问题描述】:
我正在使用具有简单架构和集合2 的自动表单。在我的表格中,我收集了一个电话号码。我住的电话号码以 0 开头。当它保存到数据库时,0 被删除。我怎样才能阻止这种情况发生?
phone: {
type: Number,
optional: true,
autoform: {
afFieldInput: {
type: "tel"
}
}
}
【问题讨论】:
我正在使用具有简单架构和集合2 的自动表单。在我的表格中,我收集了一个电话号码。我住的电话号码以 0 开头。当它保存到数据库时,0 被删除。我怎样才能阻止这种情况发生?
phone: {
type: Number,
optional: true,
autoform: {
afFieldInput: {
type: "tel"
}
}
}
【问题讨论】:
根据定义,数字存储时没有前导零 - 0123 不是有效数字。您要么需要在获取数据时添加前导零,要么将值存储为字符串。
【讨论】:
将其保存为字符串而不是 type: String 或在屏幕上显示时使用前导零对其进行格式化。如果您还存储来自其他语言环境的数字并且您不知道它们使用什么格式,则后者会更难。
【讨论】:
使用字符串并在其上添加正则表达式验证器
phone: {
type: String,
regEx: /^0{1}\d{10}$/, // or something like this
}
【讨论】:
感谢所有帮助。仅供可能遇到类似问题的人参考,请参阅下面的代码。 @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"
}
}
},
【讨论】: