2015-06-22 223 views
0

如何創建一個函數來選擇單詞X和Y之間的所有內容並將其推送到數組。選擇兩個單詞之間的詞

通過Greili - 4小時40分鐘前。
# NsShinyGiveaway
0條評論

通過ToneBob - 4小時49分鐘前。
# NsShinyGiveaway
0條評論

通過hela222 - 5小時14分鐘前。
# NsShinyGiveaway
當然爲什麼不呢? XD
0條評論

通過NovaSplitz - 5小時45分鐘前。
# NsShinyGiveaway享受PokeHeroes好友的生活。
0條評論

鑑於上面的文字,我想要把每一個字後,「通過」和空間到陣列之前。結果必須是這樣的:使用正則表達式

name[0] = "Greili" 
name[1] = "ToneBob" 
name[2] = "hela222" 
+3

請問您可以編輯您的問題,包括e圖像的文字?使用外部圖像在這裏看起來不是必要的,當整個問題(或答案)是獨立的時候更好。 –

回答

2

這裏有一個快速splitreduce

var arr = str.split("By ").reduce(function(acc, curr) { 
    curr && acc.push(curr.split(" ")[0]); return acc; 
}, []); 

結果:

[ 「Greili」, 「ToneBob」, 「hela222」, 「NovaSplitz」]

演示:JSFiddle

+0

既然你在最近的另一個答案上做了一個努力,而這不是一個FGITW,我會在這裏贊成!除此之外:我想溫和地指出,「紳士」並不是你最後回答的理想假設,但是你刪除了帖子':-)'。 – halfer

+1

@halfer謝謝!而且,對所有帳戶都是正確的。 FWIW當OP響應SQL查詢的錯誤時,我會回來。更好的方式是不要在這個時候提供不幫助OP的意見。 – Drakes

+0

嚮導!非常感謝你!爲我的需要完美工作! –

1

嘗試:

var regex = /By ([^\s]+)\s/g; 
var s = 'string to search goes here'; 
var names = []; 
var result; 
do { 
    result = regex.exec(s); 
    if (result) { 
     names.push(result[1]); 
    } 
} while (result); 

JSFiddle Example

1

我看到你想要的字始終是第二個字,所以這是一個簡單的方法解決問題。你可以在每個空間分割字符串,然後你有一個單詞數組,其中索引1處的單詞是你想要的名字。然後將每個名稱添加到新數組中。

var words = "By Greili ...".split(" "); 
var name = words[1]; // "Greili" 
var namesArray = []; 
namesArray.push(name); 

你需要爲每個評論字符串做一個循環。

相關問題