0

在我的 Rails 应用程序中,我正在搜索公司名称,并且我正在使用 mongodb 作为后端。我寻找公司的查询是

@companies = Company.where(name: /#{params[:search]}/i).all

在我的数据库中,我的公司名称为“ABC&D Services Inc. (Atlanta Project)”,当我尝试使用字符串“ABC&D Services Inc.”搜索这家公司时。它不会返回任何结果。另外,如果我尝试使用字符串“ABC&D Services Inc.(”进行搜索,它会给我带有不匹配括号的错误结束模式

任何人都知道如何使用 reg-ex 解决此类问题。最终用户可以使用任何输入执行搜索,所以有办法处理吗?

4

2 回答 2

3

Regexp.escape转义特殊字符:

@companies = Company.where(name: /#{Regexp.escape(#{params[:search]})}/i).all
于 2013-09-10T10:26:12.470 回答
0
@companies = Company.where(name: /#{Regexp.escape(params[:search])}/i)
于 2015-02-27T18:22:00.283 回答