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

R.S*_*ark 47 javascript

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

例如,字符串是"我想删除最后一个单词".

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

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

谢谢

Sea*_*ean 106

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

str = str.substring(0, lastIndex);
Run Code Online (Sandbox Code Playgroud)

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


Ben*_*nRH 8

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

var myString = "I want to remove the last word";
myString = myString.substring(0, myString.lastIndexOf(" "));
Run Code Online (Sandbox Code Playgroud)


Ami*_*far 8

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

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

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


abe*_*Ita 8

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

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

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

和平。