如何使用JavaScript删除字符串中的最后一个单词

时间:2012-02-17 05:05:50

标签: javascript

我想知道如何使用JavaScript删除字符串中的最后一个单词?

例如,字符串是“我想删除最后一个单词。”

使用删除后,文本框中的字符串将显示“我想删除最后一个”

我已经看过如何使用子字符串函数删除最后一个字符,但因为最后一个字每次都可能不同。有没有办法计算在JavaScript中删除需要多少个单词?

由于

9 个答案:

答案 0 :(得分:94)

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

str = str.substring(0, lastIndex);

获取最后一个空格,然后获取子字符串。

答案 1 :(得分:6)

你可以这样做一个简单的正则表达式:

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

查找" "的最后一个索引可能会更快。这只是更少的代码。

答案 2 :(得分:5)

一种简单的方法是使用JavaScript的lastIndexOf()substr()方法:

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

答案 3 :(得分:3)

使用split功能

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

答案 4 :(得分:2)

answer Amir Raminfar后,我找到了这个解决方案。在我看来,它比接受的答案更好,因为即使你在字符串的末尾有空格,或者在最后一个单词和标点符号之间有空格的语言(如法语),它也能正常工作。

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

它还会删除最后一个单词之前的空格和标点符号,这是OP隐式要求的。

和平。

答案 5 :(得分:1)

这个问题的最短答案如下,

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

答案 6 :(得分:1)

为了娱乐而四处闲逛,这是一种有趣而无耻的方式!

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

答案 7 :(得分:0)

您可以匹配后面没有单词字符的空格后的最后一个单词。

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

答案 8 :(得分:0)

如果此处的其他任何人试图将字符串名称分为姓和名,请确保处理名称只有单词的情况。

let recipientName = _.get(response, 'shipping_address.recipient_name'); let lastWordIndex = recipientName.lastIndexOf(" "); let firstName = (lastWordIndex == -1) ? recipientName : recipientName.substring(0, lastWordIndex); let lastName = (lastWordIndex == -1) ? '' : recipientName.substring(lastWordIndex + 1);