0

最新バージョンのsinatraとruby 1.9.3を実行しています

sinatra アプリでユーザーがカスタム正規表現を作成できるようにしました。

コード:

Posts.all(:message => %r{(?i)(.*)#{params[:searchterm]}(.*)})

#{params[:searchterm]}ユーザーがこれ以上正規表現を挿入できないようにするにはどうすればよいですか?

(ユーザーが検索すると、機能(.)*userしないはずの結果が得られます!

4

1 に答える 1

4

Regexp.escape変数値をエスケープするために使用します。

%r{(?i)(.*)#{Regexp.escape(params[:searchterm])}(.*)}
于 2012-12-02T12:08:35.303 に答える