2012-02-17 36 views
33

Tôi muốn biết làm cách nào để xóa từ cuối cùng trong chuỗi bằng JavaScript?cách xóa từ cuối cùng trong chuỗi bằng cách sử dụng JavaScript

Ví dụ: chuỗi là "Tôi muốn xóa từ cuối cùng".

Sau khi sử dụng loại bỏ, các chuỗi trong textbox sẽ hiển thị "Tôi muốn loại bỏ cuối cùng"

Tôi đã nhìn thấy làm thế nào để loại bỏ các ký tự cuối cùng bằng cách sử dụng chức năng chuỗi con, nhưng vì từ cuối cùng có thể khác nhau mỗi lần. Có cách nào để đếm số lượng từ cần thiết để loại bỏ trong JavaScript?

Cảm ơn

Trả lời

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

str = str.substring(0, lastIndex); 

Get không gian cuối cùng và sau đó nhận được chuỗi phụ.

+0

Giải pháp tuyệt vời. Tôi đã thử làm điều đó với một dòng sử dụng regex. –

+0

Đây là một giải pháp tuyệt vời. Nó làm việc cho tôi, và tôi sẽ tăng cường nó. –

3

Sử dụng chức năng split

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

Điều này cũng làm việc cho tôi để lấy lại từ cuối cùng trong chuỗi. Cảm ơn –

+2

Không đáp ứng các yêu cầu trong câu hỏi. – Antoine

0

Bạn có thể phù hợp với từ cuối cùng sau một không gian mà không có ký tự từ sau nó.

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

Tôi không nghĩ rằng nó thực sự hiệu quả. Tôi nhận được 'word [1] == 't'' –

4

Một cách dễ dàng để làm điều đó sẽ được sử dụng JavaScript của lastIndexOf()substr() phương pháp:

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

Bạn có thể làm một biểu thức chính quy đơn giản như vậy:

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

Tìm người cuối cùng chỉ số cho " " có lẽ nhanh hơn. Đây chỉ là ít mã.

0

Câu trả lời ngắn nhất cho câu hỏi này sẽ là như dưới đây,

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

Chuỗi của bạn quá dài cho ví dụ: P – Drew

+0

Dễ hiểu của nó ... – indago

+0

Thật đáng tiếc là nó không trả lời câu hỏi. – trincot

1

Sau answer bởi Amir Raminfar, tôi thấy giải pháp này. Theo tôi, nó tốt hơn câu trả lời được chấp nhận, bởi vì nó hoạt động ngay cả khi bạn có một khoảng trống ở cuối chuỗi hoặc bằng các ngôn ngữ (như tiếng Pháp) có dấu cách giữa từ cuối cùng và dấu chấm câu.

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

Nó cũng là dấu cách và dấu chấm câu trước từ cuối cùng, như OP được yêu cầu ngầm định.

Hòa bình.

0

Đánh lừa xung quanh chỉ để cho vui, đây là một cách vui nhộn và thái quá để làm điều đó!

"I want to remove the last word.".split(" ").reverse().slice(1).reverse().join(" ") 
Các vấn đề liên quan