Skip to content

Instantly share code, notes, and snippets.

@scarow
Created July 2, 2013 21:54
Show Gist options
  • Save scarow/5913569 to your computer and use it in GitHub Desktop.
Save scarow/5913569 to your computer and use it in GitHub Desktop.
Social Security madness
# Determine whether a string contains a Social Security number.
def has_ssn?(string)
/\d{3}-\d{2}-\d{4}/ =~ string
end
# Return the Social Security number from a string.
def grab_ssn(string)
mtch = string.match(/\d{3}-\d{2}-\d{4}/)
if mtch.to_s == ""
return nil
else
return mtch.to_s
end
end
# Return all of the Social Security numbers from a string.
def grab_all_ssns(string)
scn = string.scan(/\d{3}-\d{2}-\d{4}/)
if scn == []
return []
else
return scn
end
end
# Obfuscate all of the Social Security numbers in a string. Example: XXX-XX-4430.
def hide_all_ssns(string)
string.gsub(/(\d{3})-(\d{2})/, 'XXX-XX')
end
# Ensure all of the Social Security numbers use dashes for delimiters.
# Example: 480.01.4430 and 480014430 would both be 480-01-4430.
def format_ssns(string)
string.gsub(/(\d{3})\D*(\d{2})\D*(\d{4})/, '\1-\2-\3')
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment