как удалить последнее слово в строке с помощью JavaScript - PullRequest
44 голосов
/ 17 февраля 2012

Я хотел бы знать, как удалить последнее слово в строке с помощью JavaScript?

Например, строка «Я хочу удалить последнее слово».

После использования удаления строка в текстовом поле будет отображать «Я хочу удалить последний»

Я видел, как удалить последний символ, используя функцию подстроки, но поскольку последнее слово может каждый раз отличаться. Есть ли способ подсчитать, сколько слов требуется удалить в JavaScript?

Спасибо

Ответы [ 8 ]

95 голосов
/ 17 февраля 2012
var str = "I want to remove the last word.";
var lastIndex = str.lastIndexOf(" ");

str = str.substring(0, lastIndex);

Получить последний пробел, а затем получить подстроку.

7 голосов
/ 17 февраля 2012

Вы можете сделать простое регулярное выражение, например, так:

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

Хотя поиск последнего индекса для " ", вероятно, быстрее.Это просто меньше кода.

6 голосов
/ 17 февраля 2012

Простой способ сделать это - использовать методы JavaScript lastIndexOf () и substr () :

var myString = "I want to remove the last word";
myString = myString.substring(0, myString.lastIndexOf(" "));
3 голосов
/ 17 февраля 2012

Использование split функция

var myString = "I want to remove the last word";
var mySplitResult = myString.split(" ");
var lastWord =  mySplitResult[mySplitResult.length-1] 
2 голосов
/ 12 октября 2017

После ответа от Амира Раминфара я нашел это решение. На мой взгляд, это лучше, чем принятый ответ, потому что он работает, даже если у вас есть пробел в конце строки или с языками (например, французским), которые имеют пробелы между последним словом и знаком препинания.

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

Он также удаляет пробелы и знаки препинания перед последним словом, как это явно требуется для OP.

Мир.

1 голос
/ 13 октября 2017

Дурачиться ради забавы, это забавный и возмутительный способ сделать это!

"I want to remove the last word.".split(" ").reverse().slice(1).reverse().join(" ")
1 голос
/ 07 января 2016

Кратчайший ответ на этот вопрос будет следующим:

var str="I want to remove the last word".split(' ');
var lastword=str.pop();
console.log(str.join(' '));
0 голосов
/ 17 февраля 2012

Вы можете найти последнее слово, следующее за пробелом, за которым не следует никаких слов.

word=/s+\W*([a-zA-Z']+)\W*$/.exec(string);
if(word) alert(word[1])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...