我正在运行最新版本的 sinatra 和 ruby 1.9.3
我让用户在我的 sinatra 应用程序中创建自定义正则表达式。
代码:
Posts.all(:message => %r{(?i)(.*)#{params[:searchterm]}(.*)})
如何逃脱#{params[:searchterm]}
以使用户无法插入更多正则表达式?
(如果用户搜索(.)*user
他得到的结果不应该工作!
用于Regexp.escape
转义变量值:
%r{(?i)(.*)#{Regexp.escape(params[:searchterm])}(.*)}