Question

I am looking for an alternative that would solve the following issue:

with .detect if I am looking for stringvalue and the value given is 132stringvalue, it will still return true. I need an alternative that will be matching everything from the beginning of the string. Any suggestions aside from regex?

Was it helpful?

Solution

[1] pry(main)> %w[foo 456foo bar 123bar].detect {|e| e.to_i > 0}
=> "456foo"
[2] pry(main)> %w[foo 456foo bar 123bar].detect {|e| e.start_with?('123')}                   
=> "123bar"

OTHER TIPS

You can use String#[] (see doc):

1.9.3p194 :001 > "123stringvalue"["stringvalue"]
 => "stringvalue" 
1.9.3p194 :002 > "123stringvalue"["blah"]
 => nil 

It returns the substring if present, nil otherwise.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top