ed1*_*d1t 145 ruby regex ruby-on-rails-3
我的应用程序中有字段hr和min整数.对于hr字段,如果用户输入"1",我希望Rails在将其保存到数据库之前自动将其填充为"01".对于该min字段,如果用户输入"0",则应输入"00".
我怎样才能做到这一点?
Jon*_*ier 327
最好将它存储为整数,并按照运行时描述的方式显示它.每种语言都有自己的填充零的方法 - 对于Ruby,你可以使用String#rjust.此方法使用给定的填充字符填充字符串(右对齐),使其成为给定长度.
str.rjust(integer, padstr=' ') ? new_str如果
integer大于长度str,则返回一个新String的长度integer,str右对齐并填充padstr; 否则,返回str.
some_int = 5
some_int.to_s.rjust(2, '0') # => '05'
some_int.to_s.rjust(5, '0') # => '00005'
another_int = 150
another_int.to_s.rjust(2, '0') # => '150'
another_int.to_s.rjust(3, '0') # => '150'
another_int.to_s.rjust(5, '0') # => '00150'
Run Code Online (Sandbox Code Playgroud)
J-_*_*_-L 59
您可以使用以下内容将整数转换为该类型的字符串:
result_string = '%02i' % your_integer
Run Code Online (Sandbox Code Playgroud)
这与它在db中的保存方式无关.
Sum*_*sht 18
这也很方便:
"%.2d" % integer
Run Code Online (Sandbox Code Playgroud)
结果字符串为2个字符,如果数字少于2个字符,则字符串中将出现0
您不能存储01为整数.它将被转换为1
您可以将其存储为字符串,也可以将其显示为字符串"01"
我喜欢%运算符,即使它似乎已经失宠了......
2.0.0-p247 :001 > '%02i' % 1
=> "01"
2.0.0-p247 :002 > '%2i' % 1
=> " 1"
2.0.0-p247 :003 > '%-2i' % 1
=> "1 "
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
67278 次 |
| 最近记录: |