<%= @contact.foo_help %>
输出一个数字 id 和 title(它们之间有一个空格),例如:29292 This Is A Title。我只想要号码。它不会总是相同数量的数字,而且我偶尔会在标题中使用数字。
我在想最简单的方法是在第一个空格之后 gsub 一切,但我是这个框架的两个弱点,无法正确使用语法!请帮忙
<%= @contact.foo_help.gsub( \s ' ') %>
<%= @contact.foo_help %>
输出一个数字 id 和 title(它们之间有一个空格),例如:29292 This Is A Title。我只想要号码。它不会总是相同数量的数字,而且我偶尔会在标题中使用数字。
我在想最简单的方法是在第一个空格之后 gsub 一切,但我是这个框架的两个弱点,无法正确使用语法!请帮忙
<%= @contact.foo_help.gsub( \s ' ') %>
我认为最简单/最干净的事情是使用String#[]
正则表达式参数:
<%= @contact.foo_help[/\d+/] %>
例如:
>> '29292 This Is A Title.'[/\d+/]
=> "29292"
>> '29292 This 9999 Is A Title.'[/\d+/]
=> "29292"
您也可以将其收紧一点并将正则表达式锚定在字符串的开头:
<%= @contact.foo_help[/\A\d+/] %>
但我不知道你是否需要额外的噪音。
基本思想是说出你的意思(“给我字符串开头的数字,我知道它会以数字开头”),而不是抓住你不想要的东西然后扔掉。
试试这个
str = "29292 This Is A Title"
number = str.to_i
=> 29292
number.class
=> Fixnum
'29292 555 This Is A Title 8989'.to_i
=> 29292
希望这会帮助你。