【发布时间】:2016-05-28 01:23:01
【问题描述】:
在创建循环以检查电话号码是否为 10 个字符后,我相信电话问题现已解决。现在我正在检查电子邮件地址,确保它正确输出,并确保用户输入了 2 个名称。获取电子邮件地址以验证和输出时出现问题。
def fullname
"#{first_name} #{last_name}"
end
puts "Enter your first and last name (John Doe): "
name=gets.to_s
names=name.split(" ", 2)
puts "Enter your email address (joe@info.com): "
email=gets
puts "Enter your phone number including area code (numbers only): "
number=gets.to_i
def valid_email(email)
email=email.to_s
email="user@company_name.com"
loop do
if (email=/\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i)
break
else
puts "Invalid email address entered. Please try again. "
end
end
end
def phone_number(number)
number = number.to_s
area_code = number.length == 10 ? "(#{number[0..2]}) " : ''
office_code = number[-7..-5]
specific_line = number[-4..-1]
loop do
if number =10
break
else
puts "Invalid phone number entered. Please try again."
end
end
"#{area_code}#{office_code}-#{specific_line}"
end
puts names
puts valid_email(email)
puts phone_number(number)
【问题讨论】:
-
如果有更简单的方法以(123)123-1234的格式输出电话号码,请告诉我。谢谢!
-
您的直接错误来自未定义“symbolize_keys”这一事实。 'symbolize_keys' 方法来自 rails,看起来你正在尝试做 vanilla ruby。避免依赖该方法的最简单方法是将您的选项作为符号传递。
-
This blog entry 可能感兴趣。
-
完全改变你的问题的意思是不受欢迎的行为。如果您有新问题,请再问一个问题。
标签: ruby