2012-05-11 67 views
1
<%= @contact.foo_help %> 

輸出數字標識和標題(它們之間有空格),例如:29292這是標題。我只是想要這個號碼。它並不總是相同數量的數字,並且我在標題中使用數字。紅寶石在第一個空格後刪除所有內容

我在想最簡單的方法是在第一個空格之後把所有的東西都刪掉,但是我是這個框架的兩個弱點,無法獲得synstax的權利!請幫助

<%= @contact.foo_help.gsub(\s ' ') %> 
+0

你使用的是Rails還是Ruby? –

+0

'gsub''參數需要用逗號分隔,第一個參數必須是字符串或正則表達式。如果你想要後者,你必須使用正則表達式('/ \ s /')。我知道你對這門語言很陌生,但這是從以往的文檔或文檔開始的基本內容。 –

回答

6
@contact.foo_help.gsub(/\s.+/, '') 

將匹配空格後跟一個或多個任何字符,並替換爲空字符串。

Rubular是美好的這種事情http://rubular.com/

5

我認爲最簡單的/清潔的事是使用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+/] %> 

但我不知道你是否需要額外的噪音。

基本的想法是說出你的意思(「給我在字符串開頭的數字,我知道它會以數字開頭)」,而不是抓住你不想要的東西並扔掉它。

4

試試這個

str = "29292 This Is A Title" 
number = str.to_i 
=> 29292 
number.class 
=> Fixnum 

'29292 555 This Is A Title 8989'.to_i 
=> 29292 

希望這會幫助你。

相關問題