2012-02-17 119 views
33

我想知道如何使用JavaScript刪除字符串中的最後一個單詞?如何使用JavaScript刪除字符串中的最後一個單詞

例如,字符串是「我想刪除最後一個單詞」。

使用中取出後,在文本框中的字符串會顯示「我想刪除最後的」

我已經看到了如何刪除使用字符串函數的最後一個字符,但由於最後一個字可以是不同的每次。有沒有一種方法可以統計在JavaScript中需要刪除多少個單詞?

感謝

回答

71
var str = "I want to remove the last word."; 
var lastIndex = str.lastIndexOf(" "); 

str = str.substring(0, lastIndex); 

獲取最後一個空格,然後讓子字符串。

+0

偉大的解決方案。我試圖用一條線使用正則表達式。 – 2012-02-17 05:22:59

+0

這是一個很好的解決方案。它適用於我,我會加強它。 – 2012-02-21 05:14:51

3

使用split功能

var myString = "I want to remove the last word"; 
var mySplitResult = myString.split(" "); 
var lastWord = mySplitResult[mySplitResult.length-1] 
+0

這一個也適用於我檢索字符串中的最後一個單詞。謝謝 – 2012-02-22 05:22:04

+2

不符合問題中的要求。 – Antoine 2015-06-26 23:16:32

0

可以以下有沒有單詞字符下面有一個空格匹配的最後一個字。

word=/s+\W*([a-zA-Z']+)\W*$/.exec(string); 
if(word) alert(word[1]) 
+0

我不認爲這真的有效。我得到'字[1] =='t'' – 2012-02-17 05:16:49

4

一個簡單的方法來做到這一點是使用JavaScript的lastIndexOf()substr()方法:

var myString = "I want to remove the last word"; 
myString = myString.substring(0, myString.lastIndexOf(" ")); 
5

你可以做一個簡單的正則表達式,像這樣:

"I want to remove the last word.".replace(/\w+[.!?]?$/, '') 
>>> "I want to remove the last" 

找到最後一個儘管如此," "的索引可能會更快。這只是更少的代碼。

0

最簡短的回答這個問題將是如下,

var str="I want to remove the last word".split(' '); 
var lastword=str.pop(); 
console.log(str.join(' ')); 
+0

你的字符串對於這個例子來說太長了:P – Drew 2016-01-07 14:34:21

+0

它爲了易於理解... – indago 2016-01-07 15:28:41

+0

只是可惜它沒有回答這個問題。 – trincot 2016-09-04 07:30:04

1

通過Amir Raminfaranswer,我發現了這個解決方案。在我看來,它比接受的答案要好,因爲即使你在字符串末尾有一個空格或語言(如法語)在最後一個單詞和標點符號之間有空格,它也可以工作。

"Je veux supprimer le dernier mot !".replace(/[\W]*\S+[\W]*$/, '') 
"Je veux supprimer le dernier" 

它還剝去最後一個單詞之前的空格和標點符號,因爲OP隱含地要求。

和平。

0

鬼混,只是爲了好玩,這是一個有趣而無恥的做法!

"I want to remove the last word.".split(" ").reverse().slice(1).reverse().join(" ") 
相關問題