创建循环以检查电话号码是否为10个字符后,我相信手机问题现已解决。现在,我正在检查电子邮件地址,确保输出正确,并确保用户输入了2个名称。在获取电子邮件地址以验证和输出时遇到问题。
for (i=0; i<100; i++){
document.getElementById(elem + i).style.display="none";
}
答案 0 :(得分:1)
正如Some Guy在对您的问题的评论中提到的那样,您的错误来自于使用未定义的方法symbolize_keys
。如果您希望在访问数组时可以重写方法以使用字符串而不是符号。
但是,我没有在您的代码中看到您调用number_to_phone
的位置并传入选项哈希值,这需要在查找相关数据时进行设置。完全删除该代码并找出如何在实际方法中获取区域代码可能更好。
如果有更简单的方法输出格式为(123)123-1234的电话号码,请告诉我。
您可以尝试将数字分成几部分,然后将其重新组合在一起。前三个数字是区号(如果存在)。下一个(或第一个)三个数字是办公室代码。最后三个数字是具体的一行。最简单的方法是从数字的末尾开始,抓住适当的块,然后将所有内容一起返回。
def phone_number(number)
# Strings are easier to work with
number = number.to_s
# Raise an error if the length is invalid
raise "This is not a phone number" if number.length != 7 || number.length != 10
# Set the area code if it exists, and add the parens
area_code = number.length == 10 ? "(#{number[0..2]}) " : ''
# Set the office code and line number from the end of the string because there may not be an area code
office_code = number[-7..-5]
specific_line = number[-4..-1]
# Return the final product
"#{area_code}#{office_code}-#{specific_line}"
end
检查电子邮件是否有效:
VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-]+(\.[a-z]+)*\.[a-z]+\z/
def valid_email(email)
raise "This is not an email address" unless email =~ VALID_EMAIL_REGEX
end
已编辑:phone_number
方法并添加了valid_email
方法。