Подтвердить что ты не робот

Как удалить последнее слово в строке с помощью JavaScript

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

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

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

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

Спасибо

4b9b3361

Ответ 1

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

str = str.substring(0, lastIndex);

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

Ответ 2

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

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

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

Ответ 3

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

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

Ответ 4

Используйте функцию split

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

Ответ 5

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

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

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

Мир.

Ответ 6

Самый короткий ответ на этот вопрос будет следующим:

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

Ответ 7

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

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

Ответ 8

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

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

Ответ 9

Я создавал простую функцию для преобразования массива в запрос SQL. Рассмотрим эту строку:

let string = "age > 1 AND age > 1 AND age > 1 AND"
let a = string.trim().split(" "); // trim to remove last empty space.
a.pop();
a = a.join(" ");
console.log(a);

Это напечатает возраст> 1 И возраст> 1 И возраст> 1