【问题标题】:how to search string in whole string in loopback query如何在环回查询中搜索整个字符串中的字符串
【发布时间】:2019-06-21 12:02:39
【问题描述】:

我想在输入任何单词时搜索整个字符串,它只匹配第一个字符而不匹配整个字符串和字符串的中间字符。

query.and.push({ or: [{ name: { like: '^' + data.searchTextNEM + '.*', options: 'i' } }, { email: { like: '^' + data.searchTextNEM + '.*', options: 'i' } },{ phone: { like: '^' + data.searchTextNEM + '.*', options: 'i' } }]});

Users.find({where: query, limit: data.limit,skip: data.skip },function(err,res){})

就像我有两个字符串 1.mark2.denim 如果我输入 'm' 我的回复应该是 mark 和 denim 但只得到回复 mark

【问题讨论】:

  • 忽略 - 只是看看 loopback 是什么。仅供参考,环回stackoverflow标签似乎指向其他东西

标签: javascript regex loopback


【解决方案1】:

你可以试试这个:-

name: { ilike: '%' + data.searchTextNEM + '%' }

它也会匹配不区分大小写的文本。

或:

您可能已经通过了类似过滤器中的选项:-

?filter={"where":{"title":{"like":"someth.*","options":"i"}}}

【讨论】:

    【解决方案2】:

    我认为您的正则表达式不正确。如果您插入“m”,您的正则表达式将变为^m.*,这意味着“以 m 开头,然后包含任意数量的任意字符”。我想你想要.*m.*,这意味着“有任意数量的任意字符,然后是 m,然后是任意数量的任意字符”:

    query.and.push({ or: [{ name: { like: '.*' + data.searchTextNEM + '.*', options: 'i' } }, { email: { like: '.*' + data.searchTextNEM + '.*', options: 'i' } },{ phone: { like: '.*' + data.searchTextNEM + '.*', options: 'i' } }]});
     Users.find({where: query, limit: data.limit,skip: data.skip },function(err,res){
    })
    

    【讨论】:

      猜你喜欢
      • 2018-07-25
      • 2014-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-30
      相关资源
      最近更新 更多