ví dụ 1
Tháo các khoảng trắng bằng trang trí []:
let text = "& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Hello World! Đặt kết quả = text.trim [];
let result = text.trim[];
Hãy tự mình thử »
Xóa khoảng trống bằng thay thế [] bằng cách sử dụng biểu thức thông thường:
let text = "& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Hello World! Đặt kết quả = text.replace [/^\ s+| \ s+$/gm, ''];
let result = text.replace[/^\s+|\s+$/gm,''];
Hãy tự mình thử »
Xóa khoảng trống bằng thay thế [] bằng cách sử dụng biểu thức thông thường:
let text = "& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Hello World! Đặt kết quả = text.replace [/^\ s+| \ s+$/gm, ''];
Định nghĩa và cách sử dụng
Phương pháp trim[]
loại bỏ khoảng trắng từ cả hai bên của chuỗi.
Phương thức trim[]
không thay đổi chuỗi ban đầu.
Cú pháp
Thông số | Giá trị trả về |
Loại hình | Sự mô tả |
Một chuỗi
Một chuỗi có khoảng trắng bị loại bỏ từ cả hai đầu.
Hỗ trợ trình duyệt
trim[] là tính năng ECMAScript5 [ES5]. | ES5 [JavaScript 2009] được hỗ trợ đầy đủ trong tất cả các trình duyệt: | Trình duyệt Chrome | I E | Bờ rìa | Firefox |
Cuộc đi săn | Opera | Cuộc đi săn | Cuộc đi săn | Cuộc đi săn | Cuộc đi săn |
Nó cũng có thể được thực hiện với một khẳng định tích cực về việc loại bỏ, như thế này:
textContent = textContent.replace[/[\u{0080}-\u{FFFF}]/gu,""];
Điều này sử dụng Unicode. Trong JavaScript, khi biểu thị unicode cho một biểu thức chính quy, các ký tự được chỉ định với chuỗi thoát \u{xxxx}
nhưng cũng phải có cờ; Lưu ý Regex có cờ
textContent = textContent.replace[/[^\x00-\x7F]/g,""];
1.Tôi gọi đây là "khẳng định tích cực về việc loại bỏ" theo nghĩa là một khẳng định "tích cực" thể hiện các ký tự nào sẽ xóa, trong khi khẳng định "âm" thể hiện các chữ cái nào để không xóa. Trong nhiều bối cảnh, khẳng định tiêu cực, như đã nêu trong các câu trả lời trước, có thể gợi ý hơn cho người đọc. Concreflex "
textContent = textContent.replace[/[^\x00-\x7F]/g,""];
2" nói "không phải" và phạm vi textContent = textContent.replace[/[^\x00-\x7F]/g,""];
3 nói "ASCII", vì vậy hai người cùng nhau nói "không phải ascii".textContent = textContent.replace[/[^\x00-\x7F]/g,""];
Đó là một giải pháp tuyệt vời cho những người nói tiếng Anh, những người chỉ quan tâm đến ngôn ngữ tiếng Anh, và đó cũng là một câu trả lời tốt cho câu hỏi ban đầu. Nhưng trong bối cảnh chung hơn, người ta không thể luôn luôn chấp nhận sự thiên vị văn hóa của việc giả định "tất cả những người không phải là ASCII là xấu". Đối với các bối cảnh không sử dụng không ASCII, nhưng đôi khi cần phải bị loại bỏ, sự khẳng định tích cực của unicode là phù hợp hơn.
Một dấu hiệu tốt cho thấy các ký tự không có chiều rộng, không in được nhúng trong một chuỗi là khi thuộc tính "Độ dài" của chuỗi là dương [khác không], nhưng trông giống như [tức là in như] một chuỗi trống. Ví dụ: tôi đã hiển thị điều này trong trình gỡ lỗi Chrome, cho một biến có tên là "TextContent":
> textContent
""
> textContent.length
7
Điều này khiến tôi muốn xem những gì trong chuỗi đó.
> encodeURI[textContent]
"%E2%80%8B%E2%80%8B%E2%80%8B%E2%80%8B%E2%80%8B%E2%80%8B%E2%80%8B"
Trình tự byte này dường như nằm trong họ của một số ký tự Unicode được đưa vào các trình xử lý văn bản vào các tài liệu, và sau đó tìm đường vào các trường dữ liệu. Thông thường nhất, những biểu tượng này xảy ra ở cuối tài liệu. Không gian không có chiều rộng
textContent = textContent.replace[/[^\x00-\x7F]/g,""];
4 có thể được chèn bởi CK-Editor [CKeditor].encodeURI[] UTF-8 Unicode html Meaning
----------- -------- ------- ------- -------------------
"%E2%80%8B" EC 80 8B U 200B zero-width-space
"%E2%80%8E" EC 80 8E U 200E left-to-right-mark
"%E2%80%8F" EC 80 8F U 200F right-to-left-mark
Một số tài liệu tham khảo về những điều đó:
//www.fileformat.info/info/unicode/char/200B/index.htm
//en.wikipedia.org/wiki/Left-to-right_mark
Lưu ý rằng mặc dù mã hóa của ký tự nhúng là UTF-8, mã hóa trong biểu thức chính quy là không. Mặc dù ký tự được nhúng trong chuỗi là ba byte [trong trường hợp của tôi] của UTF-8, các hướng dẫn trong biểu thức chính quy phải sử dụng unicode hai byte. Trong thực tế, UTF-8 có thể dài tới bốn byte; Nó ít nhỏ gọn hơn unicode vì nó sử dụng bit cao [hoặc bit] để thoát khỏi mã hóa ASCII tiêu chuẩn. Điều đó được giải thích ở đây:
//en.wikipedia.org/wiki/UTF-8
Phương thức Một chuỗi mới đại diện cho trim[]
loại bỏ khoảng trắng từ cả hai đầu của chuỗi và trả về một chuỗi mới, mà không sửa đổi chuỗi gốc.Khoảng trắng trong bối cảnh này là tất cả các ký tự khoảng trắng [không gian, tab, không gian không phá vỡ, v.v.] và tất cả các ký tự kết thúc dòng [LF, CR, v.v.].trim[]
method removes whitespace from both ends of a string and returns a new string, without modifying the original string. Whitespace in this context is all the whitespace characters [space, tab, no-break space, etc.] and all the line terminator characters [LF, CR, etc.]. Thử nó
Cú pháp
Giá trị trả về
6 bị tước khoảng trắng từ cả đầu và cuối của nó.textContent = textContent.replace[/[^\x00-\x7F]/g,""];
Nếu cả phần bắt đầu hoặc kết thúc của
textContent = textContent.replace[/[^\x00-\x7F]/g,""];
6 đều có bất kỳ khoảng trắng nào, một chuỗi mới vẫn được trả lại [về cơ bản là bản sao của textContent = textContent.replace[/[^\x00-\x7F]/g,""];
6], không có ngoại lệ nào bị ném.Để trả về một chuỗi mới với khoảng trắng được cắt từ chỉ một đầu, hãy sử dụng
textContent = textContent.replace[/[^\x00-\x7F]/g,""];
9 hoặc > textContent
""
> textContent.length
7
0.Ví dụ
Sử dụng trim[]
Ví dụ sau hiển thị chuỗi chữ thường
> textContent
""
> textContent.length
7
2:
const orig = " foo ";
console.log[orig.trim[]]; // 'foo'
Thông số kỹ thuật
Đặc tả ngôn ngữ Ecmascript # sec-string.prototype.trim # sec-string.prototype.trim |
Tính tương thích của trình duyệt web
Bảng BCD chỉ tải trong trình duyệt