如何使用start_with忽略大写?

use*_*684 4 ruby string

是否有更好的方法来忽略大写?

"Hello".start_with?("hell","Hell") #=> true
Run Code Online (Sandbox Code Playgroud)

我想检查一个数组中的字符串元素是否以另一个忽略大写的字符串开头,就像 LIKE %在MySQL中一样.

Mur*_*foX 5

我会做这样的事情:

'Hello'.upcase.start_with?('HELL')
Run Code Online (Sandbox Code Playgroud)

解决同一问题的另一种方法。这相当于UPPER(column) like 'SOMETHING%'在 SQL 中执行类似的操作。


Ste*_*fan 5

你可以使用正则表达式String#=~:

"Hello" =~ /^hell/i    #=> 0
"hELLO" =~ /^hell/i    #=> 0
"world" =~ /^hell/i    #=> nil
Run Code Online (Sandbox Code Playgroud)

由于0真实的并且nil假的,这可以在一个if条款中使用:

if str =~ /^hell/i
  # starts with hell
end
Run Code Online (Sandbox Code Playgroud)