2017-07-20 19 views
10

嗨,對不起,這個簡單的問題,但我如何檢測字符串中的最後兩個單詞?如何檢測使用Javascript的最後2個單詞?

讓我們說我有這樣的變種:

var sample = "Hello World my first website"; 

我怎樣才能獲得最後兩個單詞動力。我試圖分裂()彈出,但只有最後一個字是越來越

var testing = sample.split(" ").pop(); 
console.log(testing) 
+5

爲什麼不能簡單地用'pop'兩次? – Bergi

回答

25

與試試看:

var testing = sample.split(" ").splice(-2); 

-2需要從給定數組末尾的兩個元素。

+0

然後'.join(「」)'返回一個字符串。 – Vic

+0

不需要使用拼接,因爲它會再次返回數組。只是'var t = sample.split(「」); var testing = t [t.length -1]; var testing2 = t [t.length -2];'。 –

+9

更好地使用「切片」而不是「拼接」 - 你不想改變原始陣列 – Bergi

7

請注意,splice再次提供一個數組並再次訪問字符串,您需要使用與直接從拆分數組訪問相同的索引。這簡直是​​

var words =sample.split(" "); 
var lastStr = words[words.length -1]; 
var lastButStr = words[words.length -2]; 

如果你願意,你正在做的方式。你幾乎在那裏。再次彈出()。

pop()方法從數組中刪除最後一個元素並返回該元素。此方法更改數組的長度。

var sample = "Hello World my first website"; 
 
var words= sample.split(" "); 
 
var lastStr = words.pop(); // removed the last. 
 
var lastButStr= words.pop(); 
 
console.log(lastStr,lastButStr);

筆記,彈出()刪除的元素。並確保你有足夠的話。

+0

我沒有downvote它先生 – VLR

+1

@VLR沒問題。希望你喜歡我的回答。如果它沒有評論,我真的不關心downvote。 –

+0

雖然這回答了這個問題,但很高興看到這些變量的一些更好的名字 –

3

或用正則表達式做,如果你想把它當作一個字符串

var str = "The rain in SPAIN stays mainly in the plain"; 
 
var res = str.match(/[^ ]* [^ ]*$/g); 
 
console.log(res);

+7

舌頭臉頰:解決與正則表達式的問題意味着你現在有2個問題:原始問題和正則表達式你需要維護和正確的文件。 – Nzall

+0

正如@jacques marais的回答指出的那樣,我可能會避免在空間上分裂來檢索單詞。 ('how'now。brown cow?')。split('')'=>'[「how」,「now」,「brown」,「cow?」]'vs alphanumeric'('how; (/ \ w +/g)'=>'[「how」,「now」,「brown」,「cow」]'。當然,這有它自己的問題,如unicode特殊字符(例如☃),所以這需要根據實際使用情況進行調整... – BurnsBA

0

試試這個

var sample = "Hello World my first website"; 
 

 
var testing = sample.split(" ").slice(-2); 
 
console.log(testing)

0

你可以也嘗試類似:

sample.match(/\w+\W+\w+$/); 
1

var splitted = "Hello World my first website".split(" "); 
 
var testing = splitted.splice(splitted.length - 2); 
 
console.log(testing[0] + " " + testing[1]);

0

試試這個。

var testing = sample.split(" ").splice(-2).join(' '); 
0

首先我們使用分割功能,然後通過拼接,我們可以得到最後的兩個詞,並通過加入功能串聯這兩個詞拆分字符串。

請檢查該

sample.split(" ").splice(-2).join(" "); 
相關問題