本篇文档介绍使用规则表达式校验数据的合法性,只允许写入符合规则的数据。
设置校验规则
.validate
规则类型用于设置允许写入的数据格式和数据类型。
例如,限制写入 /foo
的数据必须是字符串类型且长度小于100:
{ |
注意:
- 任何一个子节点的
.validate
规则校验失败,整个写操作都将失败;
- 当删除节点时,
.validate
表达式会被忽略。
data 和 newData
内置对象 data
用于获取数据操作前的原始数据。newData
用于获取数据操作之后的新数据。
例如,设置在指定节点下,不可以修改数据:
// 可以写入数据或删除数据,但不能修改已有数据。 |
定位到任一节点
内置变量 root
,data
和 newData
的 parent()
和 child()
方法用于定位到任一节点。
例如,电影评分超过 8 分,且电影已上映 ,那么可以收藏这部电影:{
".validate": "root.child('movie').val().exists() &&
data.parent().child('score').val() > 8 &&
newData.parent.child('isShow').val() === true "
}
正则表达式校验数据
matches()
方法用于规则表达式正则校验。
例如,限制写入的数据是字符串,并且字符串是 1900-2099 年间的 YYYY-MM-DD 格式:
|
关于正则表达式校验的更多内容,请参考 API 文档。