Ruby检查电子邮件地址

时间:2016-05-28 01:23:01

标签: ruby

创建循环以检查电话号码是否为10个字符后,我相信手机问题现已解决。现在,我正在检查电子邮件地址,确保输出正确,并确保用户输入了2个名称。在获取电子邮件地址以验证和输出时遇到问题。

 
for (i=0; i<100; i++){
    document.getElementById(elem + i).style.display="none";
}

1 个答案:

答案 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方法。