W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
從基礎(chǔ)庫 2.3.2 開始(wx-server-sdk 從 0.0.23 開始),數(shù)據(jù)庫支持正則表達式查詢,開發(fā)者可以在查詢語句中使用 JavaScript 原生正則對象或使用 db.RegExp 方法來構(gòu)造正則對象然后進行字符串匹配。在查詢條件中對一個字段進行正則匹配即要求該字段的值可以被給定的正則表達式匹配,注意正則表達式不可用于 db.command 內(nèi)(如 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 原生正則對象構(gòu)造時僅支持其中的 i, m 兩個 flag,因此需要使用到 s 這個 flag 時必須使用 db.RegExp 構(gòu)造器構(gòu)造正則對象。flag 的含義見下表:
flag | 說明 |
---|---|
i | 大小寫不敏感 |
m | 跨行匹配;讓開始匹配符 ^ 或結(jié)束匹配符 $ 時除了匹配字符串的開頭和結(jié)尾外,還匹配行的開頭和結(jié)尾 |
s | 讓 . 可以匹配包括換行符在內(nèi)的所有字符 |
基礎(chǔ)用法示例:
// 原生 JavaScript 對象
db.collection('todos').where({
description: /miniprogram/i
})
// 數(shù)據(jù)庫正則對象
db.collection('todos').where({
description: db.RegExp({
regexp: 'miniprogram',
options: 'i',
})
})
// 用 new 構(gòu)造也是可以的
db.collection('todos').where({
description: new db.RegExp({
regexp: 'miniprogram',
options: 'i',
})
})
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: