Hướng dẫn javascript trim x00 - cắt javascript x00

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ìnhSự 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 ChromeI EBờ rìaFirefox
Cuộc đi sănOperaCuộc đi sănCuộc đi sănCuộc đi sănCuộ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 đó:

http://www.fileformat.info/info/unicode/char/200B/index.htm

https://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:

https://en.wikipedia.org/wiki/UTF-8

Phương thức 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ề

Một chuỗi mới đại diện cho

textContent = textContent.replace(/[^\x00-\x7F]/g,"");
6 bị tước khoảng trắng từ cả đầu và cuối của nó.

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

Sự chỉ rõ
Đặ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

Xem thêm