當使用正則運算式允許不區分大小寫時,它只適用于純字串。當括號或其他特殊字符用于名稱時,db 查詢不回傳任何結果。
示例:“Push It”可以正常作業并回傳歌曲。然而,當搜索“Escape (The Pina Colada Song)”時,它沒有回傳任何歌曲。如何使正則運算式允許這些特殊字符?
任何建議都會很棒。
const lowercaseName = new RegExp(`^${name}`, 'i')
const songs: any = await Song.find({ name: lowercaseName, artist_id })
uj5u.com熱心網友回復:
您應該轉義您發送的字串中的所有特殊字符。試試這個:
const lowercaseName = new RegExp(`^${name.replace(/[.* ?^${}()|[\]\\]/g, '\\$&')}`, 'i')
const songs: any = await Song.find({ name: lowercaseName, artist_id })
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/422857.html
標籤:
上一篇:如何為Algolia定義、附加或映射objectID到陣列?
下一篇:如何替換mongo中的所有檔案?
