W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
從基礎(chǔ)庫 2.3.2 開始(wx-server-sdk 從 0.0.23 開始),數(shù)據(jù)庫支持正則表達(dá)式查詢,開發(fā)者可以在查詢語句中使用 JavaScript 原生正則對(duì)象或使用 db.RegExp 方法來構(gòu)造正則對(duì)象然后進(jìn)行字符串匹配。在查詢條件中對(duì)一個(gè)字段進(jìn)行正則匹配即要求該字段的值可以被給定的正則表達(dá)式匹配,注意正則表達(dá)式不可用于 db.command 內(nèi)(如 db.command.in)。
使用正則表達(dá)式匹配可以滿足字符串匹配需求,但不適用于長文本 / 大數(shù)據(jù)量的文本匹配 / 搜索,因?yàn)闀?huì)有性能問題,對(duì)此類場景應(yīng)使用文本搜索引擎如 ElasticSearch 等實(shí)現(xiàn)。
db.RegExp 定義如下:
function RegExp(initOptions: IInitOptions): DBRegExp
interface IInitOptions {
regexp: string // 正則表達(dá)式,字符串形式
options: string // flags,包括 i, m, s 但前端不做強(qiáng)限制
}
options 支持 i, m, s 這四個(gè) flag,注意 JavaScript 原生正則對(duì)象構(gòu)造時(shí)僅支持其中的 i, m 兩個(gè) flag,因此需要使用到 s 這個(gè) flag 時(shí)必須使用 db.RegExp 構(gòu)造器構(gòu)造正則對(duì)象。flag 的含義見下表:
flag | 說明 |
---|---|
i | 大小寫不敏感 |
m | 跨行匹配;讓開始匹配符 ^ 或結(jié)束匹配符 $ 時(shí)除了匹配字符串的開頭和結(jié)尾外,還匹配行的開頭和結(jié)尾 |
s | 讓 . 可以匹配包括換行符在內(nèi)的所有字符 |
基礎(chǔ)用法示例:
// 原生 JavaScript 對(duì)象
db.collection('todos').where({
description: /miniprogram/i
})
// 數(shù)據(jù)庫正則對(duì)象
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號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: