我正在尝试按如下方式格式化字符串
确保所有数字都使用破折号作为分隔符。
示例:480.01.4430 和 480014430 都是 480-01-4430。
这是我到目前为止所想到的,但我不明白为什么它不起作用
def format_ssns(string)
ssn = string[/\d{9}/]
ssn.gsub(/\d{9}/, /\d{3}-\d{2}-\d{4}/)
end
奇怪的是你没有得到异常:第二个参数gsub http://www.ruby-doc.org/core-2.0/String.html#method-i-gsub必须是字符串(或可以转换为字符串的内容),而不是正则表达式。
这是一个工作示例:
ssn = '123456789'
ssn.gsub(/(\d{3})(\d{2})(\d{3})/, '\1-\2-\3')
# => "123-45-6789"
原始字符串中有三组数字。我们将每个组括在括号中。每对括号创建一个比赛组。在替换字符串中,我们使用\1
包括第一组比赛,\2
包括第二个比赛组,并且\3
包括第三个匹配组,它们之间用破折号分隔。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)