一個字符串,我想這樣做如下:紅寶石:搜索多個搜索詞
if params[:entry].include? ("http" || "www" || "com" || "abc" || "def")
...
end
我嘗試使用正則表達式,但它不工作(不能轉換正則表達式來串)和我如果我們正在搜索的字符串在params [:entry]中出現,則需要該語句返回true。
使用Ruby/Rails做到這一點的最佳方式是什麼?
一個字符串,我想這樣做如下:紅寶石:搜索多個搜索詞
if params[:entry].include? ("http" || "www" || "com" || "abc" || "def")
...
end
我嘗試使用正則表達式,但它不工作(不能轉換正則表達式來串)和我如果我們正在搜索的字符串在params [:entry]中出現,則需要該語句返回true。
使用Ruby/Rails做到這一點的最佳方式是什麼?
會不會params[:entry].match(/(http|www|com|abc|def)/)
做詭計?
嘗試把它變成一個數組如下:
["http","www","com","abc","def"].include?(params[:entry])
這不起作用,因爲它只找到完美匹配。澄清一下,如果'params [:entry]'是'www.hello.com',那麼你會在我們真正想要的地方返回false。 – sscirrus 2012-03-30 11:04:15
除了Wukerplank的答案很可能要在任何情況下(低/上)匹配這些字符串,你可以做這改變了一下正則表達式是這樣的:
params[:entry].match(/(http|www|com|abc|def)/i)
當然,你可以使用=~
運營商,而不是通話比賽上,如果你的字符串寧願:
params[:entry] =~ /(http|www|com|abc|def)/i
這很有幫助 - 謝謝Aldo。 +1 – sscirrus 2012-04-02 17:37:01
不客氣;) – 2012-04-02 18:23:23
知道了!謝謝Wukerplank。 – sscirrus 2012-03-30 06:28:10