2010-06-21 74 views

Trả lời

8

từ http://en.wikipedia.org/wiki/Trim_%28programming%29

String.prototype.trim = function() { 
    return this.replace(/^\s+|\s+$/g, ""); 
}; 

Đó sẽ bổ sung thêm một chức năng trim để biến chuỗi đó sẽ loại bỏ khoảng trắng từ đầu và kết thúc của một chuỗi.

Với điều này bạn có thể làm những thứ như:

var mystr = "this is my string "; // including newlines 
mystr = mystr.trim(); 
+7

Nếu tất cả @ lam3r4370 muốn làm là thay thế một ký tự '\ n', thay thế'/^ \ s + | \ s + $/g' ở trên bằng '/ \ n $ /'. Ngoài ra, nếu bạn đang lập kế hoạch phân phối mã này hoặc đặt nó ở nơi có khả năng chia sẻ không gian với JS từ những người dùng khác, tôi khuyên bạn chỉ nên tạo một hàm chung 'trim' thay vì sử dụng' String.prototype'. Mặc dù thực hành rất phổ biến, bạn có thể gây rắc rối cho người khác bằng cách thêm các phương thức vào các đối tượng JS cốt lõi. – Andrew

+0

@Andrew, cách của bạn sẽ thay đổi vị trí con trỏ. @ John, của bạn - di chuyển văn bản trên phần bắt đầu của vùng văn bản. – lam3r4370

+0

Ồ. Bạn có đang cố gắng xóa dấu ngắt dòng trên một vùng văn bản mà người dùng đang cập nhật không? – Andrew

3

$.trim() nên làm các trick!

Nó cắt các khoảng trắng và ký tự dòng mới từ đầu và cuối của chuỗi được chỉ định.

+3

Không nơi nào Người hỏi cho biết họ đang sử dụng jQuery ... hoặc họ muốn cắt bất kỳ thứ gì khác ngoài một dòng mới. –

38
verses ="1\n222\n" 
verses = verses.replace(/\n$/, "") 
-> returns "1\n222" 
+0

Tôi thích điều này nhất. Trong một dòng 'stdout', ví dụ, nó sẽ có một hit hiệu suất rất lớn mặc dù. Nhưng không có cách nào xung quanh trong trường hợp này ... – eljefedelrodeodeljefe

2

Cá nhân tôi thích lodash để cắt bớt dòng mới từ chuỗi. https://lodash.com/

_.trim(myString); 
+0

Để trả lời câu hỏi, sử dụng '_.trimRight (myString, '\ n')'. Lưu ý rằng thao tác này sẽ xóa * mọi * số dòng mới, chứ không phải chỉ một. –

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