Thay thế tất cả các lần xuất hiện của một ký tự trong chuỗi JavaScript

Psssst. TRẠI BOOTC PHÁT TRIỂN WEB 2023 sẽ bắt đầu chỉ sau vài ngày nữa. Tham gia danh sách chờ, giữ chỗ trong khóa học thuần tập kéo dài 10 tuần của tôi và tìm hiểu các nguyên tắc cơ bản, HTML, CSS, JS, Tailwind, React, Next. jsvà hơn thế nữa. ✨

Sử dụng biểu thức chính quy

Regex đơn giản này sẽ thực hiện nhiệm vụ

String.replace(//g, '')

Điều này thực hiện thay thế phân biệt chữ hoa chữ thường

Đây là một ví dụ, trong đó tôi thay thế tất cả các lần xuất hiện của từ 'dog' trong chuỗi

const phrase = 'I love my dog! Dogs are great'
const stripped = phrase.replace(/dog/g, '')

stripped //"I love my ! Dogs are great"
1

const phrase = 'I love my dog! Dogs are great'
const stripped = phrase.replace(/dog/g, '')

stripped //"I love my ! Dogs are great"

Để thực hiện thay thế không phân biệt chữ hoa chữ thường, hãy sử dụng tùy chọn

const phrase = 'I love my dog! Dogs are great'
const stripped = phrase.replace(/dog/g, '')

stripped //"I love my ! Dogs are great"
2 trong biểu thức chính quy

String.replace(//gi, '')

Thí dụ

const phrase = 'I love my dog! Dogs are great'
const stripped = phrase.replace(/dog/gi, '')

stripped //"I love my ! s are great"

Hãy nhớ rằng nếu chuỗi chứa một số ký tự đặc biệt, nó sẽ không hoạt động tốt với các biểu thức thông thường, vì vậy gợi ý là thoát khỏi chuỗi bằng hàm này (lấy từ)

const escapeRegExp = (string) => {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')
}

Sử dụng tách và nối

Một giải pháp thay thế, mặc dù chậm hơn regex, là sử dụng hai hàm JavaScript

Đầu tiên là

const phrase = 'I love my dog! Dogs are great'
const stripped = phrase.replace(/dog/g, '')

stripped //"I love my ! Dogs are great"
0, cắt bớt một chuỗi khi nó tìm thấy một mẫu (phân biệt chữ hoa chữ thường) và trả về một mảng có các mã thông báo

Trong đoạn mã này, chúng tôi sẽ hướng dẫn bạn tìm hiểu cách thích hợp để thay thế tất cả các lần xuất hiện của một chuỗi trong JavaScript

Nói chung, hàm thay thế () trong JavaScript được sử dụng để thay thế

Hãy bắt đầu từ cách đơn giản nhất. kết hợp hàm thay thế () với biểu thức chính quy (regrec)

Regexp sau thực hiện thay thế phân biệt chữ hoa chữ thường

String.replace(//g, '')

Trong ví dụ tiếp theo, tất cả các lần xuất hiện của từ “động vật” được thay thế bằng cụm từ chuỗi

Thay thế tất cả các lần xuất hiện của một ký tự trong chuỗi JavaScript
Ví dụ chuỗi con Javascript

cụm từ const = 'Tôi yêu động vật. Động vật rất dễ thương' const tước = cụm từ. bảng điều khiển thay thế (/ động vật/g, ''). log(stripped) //"Tôi yêu. Động vật thật dễ thương"

Để thực hiện thay thế không phân biệt chữ hoa chữ thường, bạn cần sử dụng tùy chọn gi trong biểu thức chính quy, như sau

String.replace(//gi, '')

Ví dụ trông như thế này

Thay thế tất cả các lần xuất hiện của một ký tự trong chuỗi JavaScript
Triển khai biểu thức chính quy Javascript

cụm từ const = 'Tôi yêu động vật. Động vật rất dễ thương' const tước = cụm từ. bảng điều khiển thay thế (/ động vật/gi, ''). log(stripped) //"Tôi yêu. thật dễ thương"

Vui lòng xem xét rằng trong trường hợp có bên trong chuỗi, nó có thể không hoạt động tốt với các biểu thức chính quy. Đó là lý do tại sao chúng tôi khuyên bạn nên bỏ qua chuỗi bằng cách áp dụng chức năng sau

________số 8

Ngoài ra còn có một giải pháp thay thế. sử dụng hai hàm JavaScript. Mặc dù giải pháp này chậm hơn regex, nhưng nó cũng có thể khá tiện dụng

Hàm đầu tiên là split() được nhắm mục tiêu cắt ngắn một chuỗi khi tìm thấy một mẫu và trả về một mảng có mã thông báo, như sau

Thay thế tất cả các lần xuất hiện của một ký tự trong chuỗi JavaScript
Phân tách regex Javascript

cụm từ const = 'Tôi yêu động vật. Động vật thật dễ thương'; . split('con vật'); . nhật ký (mã thông báo); . Động vật thật tuyệt"]

Sau đó, bạn cần nối các mã thông báo trong một chuỗi mới mà không cần sự trợ giúp của dấu tách

const stripped = tokens.join('') //"I love ! Animals are great"

Khi bạn cung cấp chuỗi làm đối số đầu tiên của hàm thay thế, nó chỉ thay thế những lần xuất hiện đầu tiên của chuỗi. Sử dụng thông tin đó, bạn có thể tạo một hàm đệ quy đi qua toàn bộ chuỗi để điều tra và thay thế nó cho đến khi các kết quả khớp tổng thể được thay thế

Việc thay thế tất cả các kết quả khớp bằng tìm kiếm phân biệt chữ hoa chữ thường được thể hiện tại đây

const phrase = 'I love my dog! Dogs are great'
const stripped = phrase.replace(/dog/g, '')

stripped //"I love my ! Dogs are great"
0

Vì vậy, thay thế tất cả các lần xuất hiện chuỗi JavaScript không phải là một công việc dễ dàng. Thật không may, không thể tạo nhanh các biểu thức chính quy từ một chuỗi trong thời gian chạy, vì bạn cần thoát khỏi các ký tự đặc biệt của biểu thức chính quy. Hơn nữa, thật khó để xử lý một biểu thức chính quy để thay thế các chuỗi đơn giản

May mắn thay, có Chuỗi tồn tại. nguyên mẫu. replaceAll(), có thể thay thế tất cả các lần xuất hiện chuỗi một cách đơn giản. Do đó, về cơ bản chúng tôi khuyên bạn nên dựa vào phương pháp này

Làm cách nào để thay thế tất cả các lần xuất hiện của một chuỗi trong JavaScript?

Chuỗi. nguyên mẫu. replaceAll() Phương thức replaceAll() trả về một chuỗi mới với tất cả các kết quả khớp của một mẫu được thay thế bằng một chuỗi thay thế. Mẫu có thể là một chuỗi hoặc một RegExp và sự thay thế có thể là một chuỗi hoặc một hàm được gọi cho mỗi trận đấu.

Làm cách nào để xóa tất cả các lần xuất hiện của một ký tự khỏi chuỗi trong JavaScript?

Thay thế chuỗi JavaScript() . Phương pháp này thay thế lần xuất hiện đầu tiên của ký tự. Để xóa ký tự, chúng ta có thể đặt tham số thứ hai là trống.

Bạn có thể thay thế tất cả các lần xuất hiện?

Để làm cho phương thức replace() thay thế tất cả các lần xuất hiện của mẫu, bạn phải bật cờ chung trên biểu thức chính quy . Nối g sau khi kết thúc biểu thức chính quy bằng chữ. /search/g. Hoặc khi sử dụng hàm tạo biểu thức chính quy, hãy thêm 'g' vào đối số thứ hai. RegExp mới('tìm kiếm', 'g')

Làm cách nào để xóa tất cả các lần xuất hiện của chuỗi con khỏi chuỗi trong JavaScript?

Để loại bỏ tất cả các lần xuất hiện của một chuỗi con khỏi một chuỗi, gọi phương thức replaceAll() trên chuỗi, chuyển chuỗi con đó làm tham số đầu tiên và một chuỗi rỗng làm tham số thứ hai . Phương thức replaceAll sẽ trả về một chuỗi mới, trong đó tất cả các lần xuất hiện của chuỗi con đều bị xóa. . The replaceAll method will return a new string, where all occurrences of the substring are removed.