2012-03-30 17 views
1

私は次のような何かをしたいと思います:ルビー:複数の検索語の文字列を検索し

if params[:entry].include? ("http" || "www" || "com" || "abc" || "def") 
    ... 
end 

私は正規表現を使用してみましたが、それは動作しませんでした(文字列に正規表現を変換することはできません)とI探している文字列がの場合はどこでもというparams [:entry]で表示される場合はtrueを返すステートメントが必要です。

のRuby/Railsのを使用して、これを行うための最善の方法は何ですか?

答えて

-1

次のように配列にそれを回す試してみてください。

["http","www","com","abc","def"].include?(params[:entry]) 
+1

これは完璧な一致のみを検出するため、これは機能しません。明確にするために、 'params [:entry]'が 'www.hello.com'ならば、あなたは実際に真実が欲しい場所でfalseを返すでしょう。 – sscirrus

2

Wukerplankの答えに加えて、おそらくあなたはどのような場合にこれらの文字列を一致させたい(上/下)、あなたが行うことができますこのビットに正規表現を変更し、この方法は:

params[:entry].match(/(http|www|com|abc|def)/i) 

そしてもちろん、あなたは、あなたの場合、文字列に代わりに呼び出し試合の=~演算子を使用することができます好む:

params[:entry] =~ /(http|www|com|abc|def)/i 
+0

これは役に立ちました - ありがとうございました。 +1 – sscirrus

+0

ようこそ。) –