在我的rails应用程序中,我正在搜索公司名称,我正在使用mongodb作为后端。 我查找公司的查询是
@companies = Company.where(name: /#{params[:search]}/i).all
在我的数据库中,我的公司名称为“ABC& D Services Inc.(亚特兰大项目)”,当我试图通过提供字符串“ABC& D Services Inc.”来搜索该公司时。它不会返回任何结果。此外,如果我尝试使用字符串“ABC& D Services Inc.(”它给我错误结束模式与不匹配的括号
任何人都知道如何用reg-ex解决这类问题。最终用户可以使用任何输入执行搜索,以便有办法解决这个问题吗?
答案 0 :(得分:3)
Regexp.escape转义特殊字符:
@companies = Company.where(name: /#{Regexp.escape(#{params[:search]})}/i).all
答案 1 :(得分:0)
@companies = Company.where(name: /#{Regexp.escape(params[:search])}/i)