Ответ 1
var str = "I want to remove the last word.";
var lastIndex = str.lastIndexOf(" ");
str = str.substring(0, lastIndex);
Получить последнее пространство, а затем получить подстроку.
Я хотел бы знать, как удалить последнее слово в строке с помощью JavaScript?
Например, строка: "Я хочу удалить последнее слово".
После использования удаления строка в текстовом поле отобразит "Я хочу удалить последний"
Я видел, как удалить последний символ, используя функцию substring, но так как последнее слово может быть различным каждый раз. Есть ли способ подсчитать, сколько слов требуется удалить в JavaScript?
Спасибо
var str = "I want to remove the last word.";
var lastIndex = str.lastIndexOf(" ");
str = str.substring(0, lastIndex);
Получить последнее пространство, а затем получить подстроку.
Вы можете сделать простое регулярное выражение:
"I want to remove the last word.".replace(/\w+[.!?]?$/, '')
>>> "I want to remove the last"
Поиск последнего индекса для " "
, скорее всего, быстрее. Это всего лишь меньше кода.
Простой способ сделать это - использовать методы JavaScript lastIndexOf() и substr():
var myString = "I want to remove the last word";
myString = myString.substring(0, myString.lastIndexOf(" "));
Используйте функцию split
var myString = "I want to remove the last word";
var mySplitResult = myString.split(" ");
var lastWord = mySplitResult[mySplitResult.length-1]
Следуя answer Амир Раминфар, я нашел это решение. На мой взгляд, это лучше, чем принятый ответ, потому что он работает, даже если у вас есть пробел в конце строки или с языками (например, на французском языке), которые имеют пробелы между последним словом и знаками препинания.
"Je veux supprimer le dernier mot !".replace(/[\W]*\S+[\W]*$/, '')
"Je veux supprimer le dernier"
Он также разделяет пробелы и знаки препинания перед последним словом, так как OP неявно требуется.
Мир.
Самый короткий ответ на этот вопрос будет следующим:
var str="I want to remove the last word".split(' ');
var lastword=str.pop();
console.log(str.join(' '));
Обманывая только ради удовольствия, это смешной и возмутительный способ сделать это!
"I want to remove the last word.".split(" ").reverse().slice(1).reverse().join(" ")
Вы можете сопоставить последнее слово, следующее за пробелом, в котором не осталось ни одного слова.
word=/s+\W*([a-zA-Z']+)\W*$/.exec(string);
if(word) alert(word[1])
Я создавал простую функцию для преобразования массива в запрос 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