2009-03-19 35 views

Trả lời

101

bởi vì tôi tin rằng tất cả mọi thứ có thể được giải quyết với regex:

var str = ",liger, unicorn, snipe," 
var trim = str.replace(/(^,)|(,$)/g, "") 
// trim now equals 'liger, unicorn, snipe' 
+41

Bây giờ bạn có hai vấn đề ... – eyelidlessness

+0

(Lưu ý: Tôi upvoted câu trả lời này, tôi giống như câu nói sáo rỗng.) – eyelidlessness

+0

Cảm ơn. Regex là tuyệt vời. – CherryFlavourPez

13

Hãy thử điều này, vì không phải tất cả mọi thứ có thể được giải quyết bằng cách REs và thậm chí một số thứ có thể, không nên :-)

<script type="text/javascript"> 
    var str = ",liger, unicorn, snipe,"; 
    if (str.substr(0,1) == ",") { 
     str = str.substring(1); 
    } 
    var len = str.length; 
    if (str.substr(len-1,1) == ",") { 
     str = str.substring(0,len-1); 
    } 
    alert (str); 
</script> 
+0

+1 cho nhận xét RE. – Raithlin

+0

Thanx Pax nó hoạt động – santanu

+4

Không hỏi những gì RE có thể làm cho bạn, nhưng những gì bạn có thể làm cho REs! :) – cobbal

30

Khi câu trả lời của cobbal là "tốt nhất", theo ý kiến ​​của tôi, tôi muốn thêm một ghi chú: Tùy thuộc vào định dạng của chuỗi và mục đích của bạn để xóa dấu phẩy đầu và cuối, bạn cũng có thể muốn xem khoảng trắng .

var str = ',liger, unicorn, snipe,'; 
var trim = str.replace(/(^\s*,)|(,\s*$)/g, ''); 

Tất nhiên, với ứng dụng này, giá trị sử dụng regex trên phương pháp chuỗi cơ bản rõ ràng hơn.

+1

bổ sung khoảng trắng là móc sắt cho tôi. – Joe

+0

nếu ai cũng quan tâm đến việc cắt không gian, hãy sử dụng câu trả lời của herostwist tốt hơn, tốt hơn. – Sharky

14

Nếu bạn muốn đảm bảo rằng bạn không có bất kỳ dấu phẩy hoặc dấu cách trắng nào, bạn có thể muốn sử dụng regex này.

var str = ' , , , foo, bar, '; 
str = str.replace(/(^[,\s]+)|([,\s]+$)/g, ''); 

lợi nhuận

"foo, bar" 
+0

Đối với những người tự hỏi tại sao điều này khác với mí mắt, giải pháp này ngăn cách các dấu cách trước dấu phẩy hoặc sau dấu phẩy mở. – SamGoody

+0

Nó cũng xử lý nhiều dấu phẩy đầu hoặc cuối. Ví dụ: ',,, liger, unicorn, snipe ,,,' -> 'liger, kỳ lân, snipe'. –

Các vấn đề liên quan