See if a ruby string has whitespace in it

Viewed 20813

I want to see if a string has any white space in it. What's the most effective way of doing this in ruby?

Thanks

6 Answers

If by "white space" you mean in the Regular Expression sense, which is any of space character, tab, newline, carriage return or (I think) form-feed, then any of the answers provided will work:

s.match(/\s/)
s.index(/\s/)
s =~ /\s/

or even (not previously mentioned)

s[/\s/]

If you're only interested in checking for a space character, then try your preference of

s.match(" ")
s.index(" ")
s =~ / /
s[" "]

From irb (Ruby 1.8.6):

s = "a b"
puts s.match(/\s/) ? "yes" : "no" #-> yes
puts s.index(/\s/) ? "yes" : "no" #-> yes
puts s =~ /\s/ ? "yes" : "no" #-> yes
puts s[/\s/] ? "yes" : "no" #-> yes

s = "abc"
puts s.match(/\s/) ? "yes" : "no" #-> no
puts s.index(/\s/) ? "yes" : "no" #-> no
puts s =~ /\s/ ? "yes" : "no" #-> no
puts s[/\s/] ? "yes" : "no" #-> no

It is usually done like this:

str =~ /\s/

You can read about regular expressions here.

"text message".include?(' ') #=> true
"text_message".include?(' ') #=> false

you can use index

"mystring".index(/\s/)
Related