什么是正则表达式?
正则表达式描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种字串、将匹配的子串替换或者从某个串中取出符合某个条件的字串等。
云开发中的正则表达式对象
在云开发中正则表达式的对象有两种写法如下:
原生正则对象
/miniprogram/i
云开发中构建的db.RegExp对象
db.RegExp({ regexp: 'miniprogram', options: 'i', })
这两种表达式在功能上并没有什么不同,不同的地方在对于一些比较特殊的正则对象来说使用某一种形式可能更方便
在云开发中使用正则查询
在云开发中使用正则查询的方法如下,我们只需在where查询的description字段中包含我们的正则查询对象
db.collection('todos').where({ description: db.RegExp({ regexp: 'miniprograme', options: 'i', }) })
演示:
第一步:现在数据库中添加数据
添加四条记录分别为:name:name-01; name:name-02; name:03-name; name:name-4(注意看嗷~)
第二步:在小程序中新建一个页面并设置为首页(方法:在app.json中pages的数组最前面加上例如"pages/select/select",保存后就添加好了),在select.wxml里添加一个按钮并绑定一个点击事件query
代码如下:
<button bindtap="query">正则查询</button>
第三步:编写点击事件
将select.js里的内容改成如下代码:
const db = wx.cloud.database(); const _ = db.command Page({ query:function(){ console.log("Query") db.collection("data") .where({ name: new db.RegExp({ regexp:'name-0[1-9]', //方括号内代表匹配1-9 options:'i' //i表示忽略大小写 }) }) .get().then(console.log) } })
第四步:保存编译后点击查询
查询结果:
可以看到只给出了name-0[1-9]格式的数据
欢迎关注公众号白帽技术与网络安全免费领取海量学习视频