jak usunąć ostatnie słowo w ciągu za pomocą JavaScript


Chciałbym wiedzieć, jak usunąć ostatnie słowo w ciągu za pomocą JavaScript?
Na przykład ciąg to „Chcę usunąć ostatnie słowo”.
Po użyciu usuwania w wierszu w polu tekstowym zostanie wyświetlony komunikat „Chcę usunąć ostatnie”
Widziałem, jak usunąć ostatni znak za pomocą funkcji podciąg, ale ponieważ ostatnie słowo może być za każdym razem inne. Czy istnieje sposób, aby obliczyć, ile słów należy usunąć w JavaScript?
podziękować
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

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

Pobierz ostatnią spację, a następnie podciąg.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Najłatwiejszym sposobem jest użycie metod JavaScript

lastIndexOf()
https://developer.mozilla.org/ ... dexOf
i

substr()
https://developer.mozilla.org/ ... tring
:
var myString = "I want to remove the last word";
myString = myString.substring(0, myString.lastIndexOf(" "));
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Możesz utworzyć proste wyrażenie regularne w ten sposób:
"I want to remove the last word.".replace(/\w+[.!?]?$/, '')
>>> "I want to remove the last"

Jednak znalezienie najnowszego indeksu dla
„”
jest prawdopodobnie szybsze. Po prostu mniej kodu.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Użyj funkcji
split
var myString = "I want to remove the last word";
var mySplitResult = myString.split(" ");
var lastWord = mySplitResult[mySplitResult.length-1]
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Wygłupianie się tylko dla zabawy, to zabawny i oburzający sposób na zrobienie tego!
"I want to remove the last word.".split(" ").reverse().slice(1).reverse().join(" ")
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Następujący

odpowiedź
/a/9323309/7600034Amira Raminfara
/users/419075, Znalazłem to rozwiązanie. Moim zdaniem jest to lepsze niż ogólnie przyjęta odpowiedź, ponieważ działa nawet, jeśli masz spację na końcu linii lub w językach (takich jak francuski), w których są spacje między ostatnim słowem a znakiem interpunkcyjnym.
"Je veux supprimer le dernier mot !".replace(/[\W]*\S+[\W]*$/, '')
"Je veux supprimer le dernier"

Usuwa również spacje i znaki interpunkcyjne przed ostatnim słowem, zgodnie z domniemanym wymogiem OP.
Świat.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Możesz dopasować ostatnie słowo po spacji, po której nie ma żadnych znaków słowa.
word=/s+\W*([a-zA-Z']+)\W*$/.exec(string);
if(word) alert(word[1])
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Najkrótsza odpowiedź na to pytanie byłaby następująca:
var str="I want to remove the last word".split(' ');
var lastword=str.pop();
console.log(str.join(' '));
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Jeśli ktoś inny próbuje podzielić ciąg imię na nazwisko i imię, pamiętaj, aby zająć się przypadkiem, w którym imię zawiera tylko słowo.
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);

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się