2012-02-17 12 views
33

Mi piacerebbe sapere come posso rimuovere l'ultima parola nella stringa utilizzando JavaScript?come rimuovere l'ultima parola nella stringa utilizzando JavaScript

Ad esempio, la stringa è "Voglio rimuovere l'ultima parola".

Dopo aver utilizzato la rimozione, la stringa nella casella di testo visualizzerà "Voglio rimuovere l'ultimo"

Ho visto come rimuovere l'ultimo carattere utilizzando la funzione di stringa, ma perché l'ultima parola può essere diverso ogni volta. C'è un modo per contare quante parole è necessario rimuovere in JavaScript?

Grazie

risposta

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

str = str.substring(0, lastIndex); 

Ricevi ultimo spazio e quindi ottenere sottostringa.

+0

Ottima soluzione. Ho provato a farlo con una riga usando regex. –

+0

Questa è un'ottima soluzione. Funziona per me, e ho intenzione di migliorarlo. –

3

Usa split funzione

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

Questo è anche lavoro per me per recuperare l'ultima parola nella stringa. Grazie –

+2

Non soddisfa i requisiti nella domanda. – Antoine

0

È possibile abbinare l'ultima parola a seguito di uno spazio che non ha caratteri di parola dopo di esso.

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

Non penso che funzioni davvero. Ricevo 'word [1] == 't'' –

4

Un modo semplice per farlo sarebbe quello di usare del JavaScript lastIndexOf() e substr() metodi:

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

si può fare un semplice espressione regolare in questo modo:

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

Trovare l'ultimo indice per " " è probabilmente più veloce però. Questo è solo meno codice.

0

La risposta breve a questa domanda sarebbe come sotto,

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

La stringa è troppo lunga per l'esempio: P – Drew

+0

È per facilità di comprensione ... – indago

+0

Solo un peccato che non risponda alla domanda. – trincot

1

seguito answer da Amir Raminfar, ho trovato questa soluzione. Secondo me, è meglio della risposta accettata, perché funziona anche se hai uno spazio alla fine della stringa o con lingue (come il francese) che hanno spazi tra l'ultima parola e il segno di punteggiatura.

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

strappa anche lo spazio (s) e segni di punteggiatura prima che l'ultima parola, come l'OP implicitamente richiesto.

Pace.

0

A scherzare solo per divertimento, questo è un modo divertente e oltraggioso per farlo!

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