我想检查一个字段是否已填写。我有一个未完成的代码:
print "What is your name?"
user_input = gets.chomp.upcase
if user_input = ??
print "Nice to meet you user_input!"
else
puts "Please enter your name."
end
如何完成代码才能完成?
答案 0 :(得分:0)
问题中缺少很多背景信息,但有一些事情可能会对您有所帮助。
基本检查它是否为空:
if user_input.nil? || user_input.empty?
# Ask the user to try again
end
检查它是否与您使用正则表达式指定的模式匹配(请参阅https://ruby-doc.org/core-2.1.1/Regexp.html)。例如:
if user_input =~ /^[[:upper:]][[:lower:]]+/
# One uppercase character, followed by at least one lowercase
end
第二种选择有更多的可能性,但这又取决于你的需求。
答案 1 :(得分:0)
在您希望的前提下:
user_input
变量(使用gets.chomp
)......我们有一些改变。
第一个是检查的条件,确保输入不是空白,第二个是查看输入是否匹配某个值。
首先,在继续之前,检查输入是否为空。我们可以使用String#empty来确保字符串至少包含一个字符(包括空格):
print "What is your name?"
user_input = gets.chomp.upcase
# Check to make sure the input isn't empty
if !user_input.empty?
print "Nice to meet you user_input!"
else
puts "Please enter your name."
end
然后,我们可以检查输入是否符合某些条件。遗憾的是,您的问题并未指定这些条件是什么,因此其他用户建议您可以使用正则表达式来查看它是否与特定模式匹配,或者仅使用硬编码字符串进行比较:
print "What is your name?"
user_input = gets.chomp.upcase
# After making sure the input is empty, check to make sure it matches the string "Bob"
if !user_input.empty? && user.input == "Bob"
print "Nice to meet you user_input!"
else
puts "Please enter your name."
end
最后,代码中有一个错误。一旦用户的输入被验证,输出将始终很好地满足你user_input",即使user_input
变量是另一个值。这是因为我们没有正确使用String Interpolation:
print "What is your name?"
user_input = gets.chomp.upcase
if !user_input.empty? && user.input == "Bob"
# When using string interpolation, surround the variable you'd like to print with #{}
print "Nice to meet you #{user_input}!"
else
puts "Please enter your name."
end
正如其他用户所说,您应该考虑更多地调整问题的要求。您可以为这个简单的示例添加大量细节和实验!
答案 2 :(得分:-1)
if user_input.blank?
puts "please enter your name"
else
puts "Nice to met you"
end