dzi*_*kyy 4 validation firebase firebase-security firebase-realtime-database
我正在尝试确保firebase中某个对象的某个字段是整数而不是小数.有一个方法isNumber()但它返回true wheter值是一个整数或小数.
我试图用正则表达式检查一个值,但由于某种原因它只适用于引号内的值,即字符串.
这是我的规则的样子:
"$item_id":{
"created":{
".validate":"newData.val().matches(/^[0-9]+$/)"
}
}
Run Code Online (Sandbox Code Playgroud)
所以当我把一个像字符串值的对象放在这样的{"created":"123456789"}验证工作正常.但是当我把一个带有数值{"created":123456789}验证的对象失败时.
有没有办法做到这一点?
您不能使用正则表达式来验证数字,因为正则表达式匹配字符串中的模式.
您也无法真正验证某些内容是否为整数,因为JavaScript没有单独的整数与浮点类型.它们都只是浮点数.
您可以验证的是,某些东西是整数.我能想到的最简单的方法是:
".validate":"newData.isNumber() && newData.val() % 1 === 0.0"
Run Code Online (Sandbox Code Playgroud)
这种接受1和1.0,但会拒绝1.1.
| 归档时间: |
|
| 查看次数: |
1206 次 |
| 最近记录: |