一个字符串,我想这样做如下:红宝石:搜索多个搜索词
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