如何在此查询参数中找到单词?

时间:2019-10-29 17:06:44

标签: node.js adonis.js

我正在尝试进行以下查询,以这种格式的字符串参数进行过滤:

filter: (status~contains~false~and~username~contains~'admin')

因此,我需要在此search(中输入request.input('filter'),然后在包含之后搜索单词以进行查询。我很难制作正则表达式(我不知道我是否真的需要正则表达式)

类似的东西:

 if(request.input('filter').search('regex??'))
            queryUsers.where('username', 'like', '%'+request.input('username')+'%')

尝试过:

if(filter.search("username")){
            let userName = filter.search(/?<=username~contains~).*$/g).replace("'", "")
            console.log(userName)
            //queryUsers.where('username', 'like', '%'+request.input('username')+'%')
}

但是我收到:

  

无效的正则表达式:/?<=username~contains~)。*$/:无   重复

1 个答案:

答案 0 :(得分:0)

无需使用正则表达式,您可以像以下查询一样运行- Database.from('users').whereRaw('username Like ?', ['%'+request.input('username')+'%'])