新聞中心
這里有您想知道的互聯(lián)網營銷解決方案
創(chuàng)新互聯(lián)小程序教程:微信小程序云開發(fā)API構造正則對象
db.RegExp
從基礎庫 2.3.2 開始(wx-server-sdk 從 0.0.23 開始),數(shù)據(jù)庫支持正則表達式查詢,開發(fā)者可以在查詢語句中使用 JavaScript 原生正則對象或使用 db.RegExp 方法來構造正則對象然后進行字符串匹配。在查詢條件中對一個字段進行正則匹配即要求該字段的值可以被給定的正則表達式匹配,注意正則表達式不可用于 db.command 內(如 db.command.in)。

使用正則表達式匹配可以滿足字符串匹配需求,但不適用于長文本 / 大數(shù)據(jù)量的文本匹配 / 搜索,因為會有性能問題,對此類場景應使用文本搜索引擎如 ElasticSearch 等實現(xiàn)。
db.RegExp 定義如下:
function RegExp(initOptions: IInitOptions): DBRegExp
interface IInitOptions {
regexp: string // 正則表達式,字符串形式
options: string // flags,包括 i, m, s 但前端不做強限制
}
options 支持 i, m, s 這四個 flag,注意 JavaScript 原生正則對象構造時僅支持其中的 i, m 兩個 flag,因此需要使用到 s 這個 flag 時必須使用 db.RegExp 構造器構造正則對象。flag 的含義見下表:
| flag | 說明 |
|---|---|
| i | 大小寫不敏感 |
| m | 跨行匹配;讓開始匹配符 ^ 或結束匹配符 $ 時除了匹配字符串的開頭和結尾外,還匹配行的開頭和結尾 |
| s | 讓 . 可以匹配包括換行符在內的所有字符 |
基礎用法示例:
// 原生 JavaScript 對象
db.collection('todos').where({
description: /miniprogram/i
})
// 數(shù)據(jù)庫正則對象
db.collection('todos').where({
description: db.RegExp({
regexp: 'miniprogram',
options: 'i',
})
})
// 用 new 構造也是可以的
db.collection('todos').where({
description: new db.RegExp({
regexp: 'miniprogram',
options: 'i',
})
}) 網頁標題:創(chuàng)新互聯(lián)小程序教程:微信小程序云開發(fā)API構造正則對象
當前鏈接:http://www.fisionsoft.com.cn/article/djcidpg.html


咨詢
建站咨詢
