Làm cách nào để bỏ qua các ký tự đặc biệt trong chuỗi JavaScript?

Một ký tự thoát cho phép bạn xuất các ký tự mà bình thường bạn không thể làm được, thường là do trình duyệt sẽ diễn giải ký tự đó khác với những gì bạn dự định

Phương pháp-1. Thoát các ký tự đặc biệt HTML trong JavaScript

Đoạn mã sau cho thấy phương pháp đơn giản và dễ dàng để thoát các ký tự đặc biệt HTML trong JavaScript

Nguồn đầy đủ. JavaScript

Phương pháp-2. Thoát tất cả các ký tự đặc biệt trong JavaScript

Trong phương pháp này, hãy sử dụng HTML Phương thức DOM createTextNode() để thoát các ký tự đặc biệt HTML trong JavaScript

Nguồn đầy đủ. JavaScript

Phương pháp-3. Thoát các ký tự đặc biệt trong JavaScript

Trong phương pháp này, hãy sử dụng phương thức thay thế () của JavaScript để thoát các ký tự đặc biệt trong JavaScript

Nguồn đầy đủ. JavaScript

Ký tự thoát JavaScript

ví dụ

Đoạn code trên khi chạy sẽ báo lỗi do trình duyệt gặp dấu ngoặc kép đầu tiên, nó sẽ tưởng là chuỗi đã kết thúc

Sử dụng ký tự thoát

Đoạn mã trên sẽ chạy thành công, vì trình duyệt gặp dấu gạch chéo ngược, nó biết không cố diễn giải ký tự tiếp theo

Giả sử bạn có một chuỗi chứa một số ký tự đặc biệt trong JavaScript. Và, vì lý do này hay lý do khác, bạn muốn loại bỏ những ký tự đặc biệt đó

Cách tốt nhất để làm điều đó là gì?

Để xóa các ký tự đặc biệt khỏi chuỗi trong JavaScript, hãy sử dụng phương thức

// Store phone number in a string
let myString = '+1 222 333 4444';

// Remove + sign
console.log(myString.replace(/[+]/g, ''));

// 1 222 333 4444
0. Khớp các ký tự đặc biệt với mẫu RegEx và thay thế chúng bằng dấu ngoặc kép trống

Phương thức

// Store phone number in a string
let myString = '+1 222 333 4444';

// Remove + sign
console.log(myString.replace(/[+]/g, ''));

// 1 222 333 4444
0 có cú pháp như sau

String.replace(pattern, replacement)

Phương thức

// Store phone number in a string
let myString = '+1 222 333 4444';

// Remove + sign
console.log(myString.replace(/[+]/g, ''));

// 1 222 333 4444
0 chấp nhận một chuỗi, tìm kiếm các kết quả khớp với
// Store phone number in a string
let myString = '+1 222 333 4444';

// Remove + sign
console.log(myString.replace(/[+]/g, ''));

// 1 222 333 4444
3 và, tùy thuộc vào việc
// Store phone number in a string
let myString = '+1 222 333 4444';

// Remove + sign
console.log(myString.replace(/[+]/g, ''));

// 1 222 333 4444
3 có phải là toàn cầu hay không (thêm về điều đó trong giây lát), thay thế một hoặc tất cả các kết quả khớp với
// Store phone number in a string
let myString = '+1 222 333 4444';

// Remove + sign
console.log(myString.replace(/[+]/g, ''));

// 1 222 333 4444
5, trong đó

  • // Store phone number in a string
    let myString = '+1 222 333 4444';
    
    // Remove + sign
    console.log(myString.replace(/[+]/g, ''));
    
    // 1 222 333 4444
    3 phải luôn là biểu thức chính quy (RegEx). RegEx có thể tìm thấy kết quả khớp đầu tiên hoặc, nếu nó được đặt là toàn cục bằng cách sử dụng cờ
    // Store phone number in a string
    let myString = '+1 222 333 4444';
    
    // Remove + sign
    console.log(myString.replace(/[+]/g, ''));
    
    // 1 222 333 4444
    7, thì tất cả kết quả khớp
  • // Store phone number in a string
    let myString = '+1 222 333 4444';
    
    // Remove + sign
    console.log(myString.replace(/[+]/g, ''));
    
    // 1 222 333 4444
    5 phải là một chuỗi hoặc một hàm được gọi bất cứ khi nào tìm thấy kết quả khớp

Để xóa các ký tự đặc biệt khỏi một chuỗi trong JavaScript, chúng tôi sẽ sử dụng phương pháp

// Store phone number in a string
let myString = '+1 222 333 4444';

// Remove + sign
console.log(myString.replace(/[+]/g, ''));

// 1 222 333 4444
0 với quy tắc RegEx toàn cầu tìm kiếm tất cả các ký tự phù hợp mà chúng tôi muốn xóa, sau đó thay thế chúng bằng dấu ngoặc kép trống (
// Store phone number in a string
let myString = '+1 222 333 4444';

// Remove + sign
console.log(myString.replace(/[+]/g, ''));

// 1 222 333 4444
10)

Làm như thế nào

Khi RegEx trở nên dài, nó có thể tiêu tốn rất nhiều sức mạnh xử lý. Vì vậy, bạn muốn làm cho biểu thức chính quy của mình tiết kiệm bằng cách giữ chúng ngắn gọn và đơn giản nhất có thể

(Tôi muốn kiểm tra các biểu thức chính quy của mình tại regex101. com. Ở trên cùng, nó hiển thị số bước và mili giây mà biểu thức đã thực hiện; . )

Để xóa các ký tự đặc biệt khỏi một chuỗi trong JavaScript bằng RegEx và phương thức

// Store phone number in a string
let myString = '+1 222 333 4444';

// Remove + sign
console.log(myString.replace(/[+]/g, ''));

// 1 222 333 4444
11, câu hỏi đầu tiên bạn cần tự hỏi mình là…

Bạn muốn loại bỏ những ký tự đặc biệt nào?

Điều này xác định các yêu cầu cho biểu thức chính quy của bạn. Tùy thuộc vào việc bạn có thể trả lời câu hỏi này hay không, mẫu RegEx của bạn sẽ trông khác đi

Xóa các ký tự đặc biệt đã biết

Giả sử bạn đã lưu một số điện thoại trong một chuỗi bắt đầu bằng dấu cộng trong một biến có tên là

// Store phone number in a string
let myString = '+1 222 333 4444';

// Remove + sign
console.log(myString.replace(/[+]/g, ''));

// 1 222 333 4444
12

Để bỏ dấu cộng, bạn có thể áp dụng phương thức

// Store phone number in a string
let myString = '+1 222 333 4444';

// Remove + sign
console.log(myString.replace(/[+]/g, ''));

// 1 222 333 4444
0 với biểu thức chính quy sau

// Store phone number in a string
let myString = '+1 222 333 4444';

// Remove + sign
console.log(myString.replace(/[+]/g, ''));

// 1 222 333 4444

Nếu số điện thoại được định dạng khác—ví dụ: mã quốc gia được đặt trong dấu ngoặc vuông và được thêm vào trước dấu cộng—bạn sẽ cần mở rộng RegEx của mình sang bên dưới

// Store phone number in a string
let myString = '+1 222 333 4444';

// Remove + sign
console.log(myString.replace(/[+]/g, ''));

// 1 222 333 4444
1

Bây giờ có những tình huống bạn muốn thay thế ký tự đặc biệt bằng khoảng trắng chứ không phải không có gì. Giả sử rằng các phần khác nhau của số điện thoại được phân tách bằng dấu gạch ngang. Để có được một số điện thoại dễ đọc, bạn có thể muốn làm điều này

// Store phone number in a string
let myString = '+1 222 333 4444';

// Remove + sign
console.log(myString.replace(/[+]/g, ''));

// 1 222 333 4444
7

psst. Nếu bạn chưa quen với việc phát triển web, bạn có thể kiểm tra tất cả các đoạn mã này bằng cách mở công cụ dành cho nhà phát triển của trình duyệt ngay bây giờ, sao chép/dán chúng vào bảng điều khiển và nhấn enter

Xóa các ký tự đặc biệt không xác định

Điều gì sẽ xảy ra nếu bạn muốn xóa các ký tự đặc biệt khỏi một chuỗi—nhưng bạn không thể chắc chắn những ký tự đặc biệt nào sẽ có trong đó?

Bạn có thể tiếp cận vấn đề này một cách tổng quát và tạo một biểu thức chính quy tìm kiếm kết quả phù hợp với mọi thứ trừ các chữ cái tiếng Anh, chữ số, dấu chấm câu phổ biến (dấu phẩy, dấu chấm phẩy, dấu gạch ngang, dấu chấm, dấu chấm than, dấu chấm hỏi) và khoảng trắng

// Store phone number in a string
let myString = '+1 222 333 4444';

// Remove + sign
console.log(myString.replace(/[+]/g, ''));

// 1 222 333 4444
8

Sau đó, bạn có thể điều chỉnh quy tắc RegEx khi cần để triển khai

Ví dụ: các ngôn ngữ khác có các bộ ký tự khác nhau, vì vậy bạn cần điều chỉnh biểu thức chính quy để đảm bảo rằng việc sử dụng phương thức

// Store phone number in a string
let myString = '+1 222 333 4444';

// Remove + sign
console.log(myString.replace(/[+]/g, ''));

// 1 222 333 4444
0 của bạn không ăn các chữ cái không phải tiếng Anh

Ngoài ra, tùy thuộc vào những ký tự đặc biệt mà bạn mong muốn được lưu trữ trong

// Store phone number in a string
let myString = '+1 222 333 4444';

// Remove + sign
console.log(myString.replace(/[+]/g, ''));

// 1 222 333 4444
12, bạn có thể muốn hoặc không muốn thêm/xóa một số vào/khỏi biểu thức chính quy của mình

Xóa thẻ HTML

Hãy thử các biểu thức chính quy ở trên đối với các chuỗi chứa các thẻ HTML, và bạn sẽ thấy rằng, mặc dù nó loại bỏ các dấu ngoặc nhọn (

// Store phone number in a string
let myString = '+1 222 333 4444';

// Remove + sign
console.log(myString.replace(/[+]/g, ''));

// 1 222 333 4444
16), nó vẫn để lại tên của các thẻ (i. e. , div, p, b, i, v.v. ) hoặc các thuộc tính chứa trong chúng (i. e. , href, lớp, id, phong cách)

Nếu chuỗi của bạn có các ký tự đặc biệt vì nó chứa đánh dấu HTML được phân tích cú pháp, bạn sẽ cần tiếp cận RegEx của mình theo cách khác

String.replace(pattern, replacement)
2

Bạn cũng có thể kết hợp biểu thức chính quy cho các thẻ HTML với biểu thức cho các ký tự đặc biệt trong cùng một quy tắc bằng cách tách chúng bằng một thanh dọc (

// Store phone number in a string
let myString = '+1 222 333 4444';

// Remove + sign
console.log(myString.replace(/[+]/g, ''));

// 1 222 333 4444
17)

String.replace(pattern, replacement)
4

Các mẫu RegEx để sử dụng

Chỉ Giữ Chữ Cái

Khớp tất cả các ký tự và ký hiệu ngoại trừ các chữ cái trong bảng chữ cái tiếng Anh và khoảng trống

String.replace(pattern, replacement)
5

Chỉ Giữ Chữ Cái và Chữ Số

Khớp tất cả các ký tự và ký hiệu ngoại trừ các chữ cái trong bảng chữ cái tiếng Anh, các chữ số từ 0 đến 9 và khoảng trống

String.replace(pattern, replacement)
6

Chỉ giữ các chữ cái, chữ số và dấu chấm câu

Khớp tất cả các ký tự và ký hiệu ngoại trừ các chữ cái trong bảng chữ cái tiếng Anh, các chữ số từ 0 đến 9, dấu phẩy, dấu hai chấm, dấu chấm phẩy, dấu gạch ngang, dấu chấm, dấu chấm hỏi, dấu chấm than và khoảng trống

String.replace(pattern, replacement)
7

Tóm lại là

Phương pháp

// Store phone number in a string
let myString = '+1 222 333 4444';

// Remove + sign
console.log(myString.replace(/[+]/g, ''));

// 1 222 333 4444
0 rất dễ sử dụng. Mặt khác, RegEx có thể khó thành thạo

Hãy dành thời gian suy nghĩ về đầu vào của phương pháp này—bạn có thể mong đợi điều gì một cách hợp lý sẽ được lưu trữ trong chuỗi đó—sau đó tạo một biểu thức chính quy đáp ứng đầy đủ hầu hết các trường hợp sử dụng

Thử nghiệm với các đầu vào thực sẽ giúp bạn kiểm tra độ rộng và độ sâu của RegEx của mình và bạn có thể sẽ phát hiện ra một vài trường hợp cạnh cần tính đến. Sẽ luôn có ngoại lệ và thật tốt khi có một số loại giám sát khi phương pháp của bạn gặp phải chúng

Làm cách nào để thay thế tất cả các ký tự đặc biệt từ chuỗi trong JavaScript?

JavaScript replace() được sử dụng để thay thế tất cả các ký tự đặc biệt từ một chuỗi bằng _ (dấu gạch dưới) được mô tả bên dưới. phương thức thay thế (). Phương thức này tìm kiếm một chuỗi cho một giá trị đã xác định hoặc một biểu thức chính quy và trả về một chuỗi mới với giá trị đã xác định đã thay thế.

Làm cách nào để cắt các ký tự đặc biệt trong JavaScript?

Biểu thức chính quy (RegEx) là cách dễ nhất để cắt một ký tự cụ thể khỏi một chuỗi trong JavaScript. Sử dụng phương thức replace() của JavaScript với RegEx để xóa một ký tự cụ thể khỏi chuỗi . Đoạn mã ví dụ giúp xóa ký tự dấu phẩy ( , ) ở đầu và cuối chuỗi bằng JavaScript.

Làm cách nào để thoát các ký tự RegEx trong JavaScript?

Trình tự thoát . Để khớp các ký tự này, chúng ta cần thêm vào trước ký tự đó một dấu gạch chéo ngược ( \ ), được gọi là chuỗi thoát . Ví dụ: \+ khớp với "+" ; . diêm ". ".