3 cách để thay đổi tất cả các lần xuất hiện chuỗi trong JavaScript

Phụ lục
3-cach-de-thay-doi-tat-ca-cac-lan-xuat-hien-chuoi-trong-javascript

Trong bài đăng này, ban sẽ tìm hiểu cách thay thế tất cả các lần xuất hiện chuỗi trong JavaScript bằng cách tách và nối một chuỗi, string.replace() kết hợp với biểu thức chính quy toàn cực và string.replaceAll().

Tách và nối một mảng

Nếu google cách thay thế tất cả các lần xuất hiện chuỗi trong JavaScript, cách tiếp cận đầu tiền bạn có thể tìm thấy là sử dụng một mảng trung gian:

Đây là cách hoạt động

1.Chia stringthành pieceschuỗi search:

2.Sau đó nối các mảnh đặt replacechuỗi ở giữa:

Ví dụ: hãy thay thế tất cả khoảng trắng ' 'bằng dấu gạch nối '-'trong 'duck duck go'chuỗi:

Js Mở bản demo

'duck duck go'.split(' ')chia chuỗi thành nhiều phần: ['duck', 'duck', 'go'].

Sau đó, các mảnh ['duck', 'duck', 'go'].join('-')được nối lại bằng cách chèn '-'vào giữa chúng, tạo ra chuỗi 'duck-duck-go'.

Đây là một hàm trợ giúp tổng quát sử dụng phương pháp chia tách và nối:

JS Mở bản demo.

Cách tiếp cận này yêu cầu chuyển đổi chuỗi thành một mảng và sau đó quay lại thành chuỗi. Hãy tiếp tục tìm kiếm những lựa chọn thay thế tốt hơn.

Thay thế () bằng biểu tượng thức chính quy toàn cục

Phương thức chuỗi string.replace(regExpSearch, replaceWith)tìmkiếm và thay thế các lần xuất hiện của biểu thức chính quy regExpSearchbằng replaceWithchuỗi.

Để 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:

  1. Nối gvào cuối biểu thức chính quy theo nghĩa đen:/search/g
  2. 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:new RegExp('search', 'g')

Hãy thay thế tất cả các lần xuất hiện của ' 'bằng '-':

JS Mở bản demo

Biểu thức chính quy /\s/g(lưu ý gcờ chung) khớp với khoảng trắng ' '.

'duck duck go'.replace(/\s/g, '-')thay thế tất cả các kết quả khớp /\s/gbằng '-', dẫn đến 'duck-duck-go'.

Bạn có thể dễ dàng thực hiện thay thế không phân biệt chữ hoa chữ thường bằng cách thêm icờ vào biểu thức chính quy:

JS Mở bản demo

Biểu thức chính quy /\s/g(lưu ý gcờ chung) khớp với khoảng trắng ' '.

'duck duck go'.replace(/\s/g, '-')thay thế tất cả các kết quả khớp /\s/gbằng '-', dẫn đến 'duck-duck-go'.

Bạn có thể dễ dàng thực hiện thay thế không phân biệt chữ hoa chữ thường bằng cách thêm icờ vào biểu thức chính quy:

Biểu thức chính quy /duck/githực hiện tìm kiếm không phân biệt chữ hoa chữ thường (ghi chú ivà gcờ). /duck/gitrận đấu 'DUCK', cũng như 'Duck'.

Việc gọi 'DUCK Duck go'.replace(/duck/gi, 'goose')sẽ thay thế tất cả kết quả khớp của /duck/gichuỗi con bằng 'goose'.

Biểu thức chính quy từ một chuỗi

Khi biểu thức chính quy được tạo từ một chuỗi, bạn phải thoát khỏi các ký tự - [ ] / { } ( ) * + ? . \ ^ $ |vì chúng có ý nghĩa đặc biệt trong biểu thức chính quy.

Vì vậy, các ký tự đặc biệt là một vấn đề khi bạn muốn thực hiện thay thế mọi thao tác. Đây là một ví dụ:

JS Mở bản demo

Đoạn mã trên cố gắng chuyển chuỗi tìm kiếm '+'thành một biểu thức chính quy. Nhưng '+'là một biểu thức chính quy không hợp lệ nên sẽ SyntaxError: Invalid regular expression: /+/bị loại bỏ.

Thoát khỏi nhân vật '\\+'sẽ giải quyết được vấn đề. JS thử bản demo cố định

Thay thế() bằng một chuỗi

Nếu đối số đầu tiên searchcủa string.replace(search, replaceWith)là một chuỗi thì phương thức này chỉ thay thế lần xuất hiện đầu tiên của search:

JS Mở bản demo

'duck duck go'.replace(' ', '-')chỉ thay thế sự xuất hiện đầu tiên của một khoảng trắng.

Phương thức thay thếAll()

Cuối cùng, phương thức này string.replaceAll(search, replaceWith)thay thế tất cả sự xuất hiện của searchchuỗi bằng replaceWith.

Hãy thay thế tất cả các lần xuất hiện của ' 'bằng '-':

JS mở bản demo

'duck duck go'.replaceAll(' ', '-')thay thế tất cả các lần xuất hiện của ' 'chuỗi bằng '-'.

string.replaceAll(search, replaceWith)là cách tốt nhất để thay thế tất cả các lần xuất hiện chuỗi trong một chuỗi

Lưu ý rằng trình duyệt hỗ trợ phương pháp này hiện bị hạn chế và bạn có thể yêu cầu polyfill .

Sự khác biệt giữa thay thếAll() và thay thế()

Các phương thức chuỗi replaceAll(search, replaceWith)và replace(search, replaceWith)cách hoạt động đều giống nhau, ngoại trừ 2 điều:

  1. Nếu searchđối số là một chuỗi, replaceAll()thay thế tất cả các lần xuất hiệnsearch bằng , replaceWithtrong khi chỉ replace()thay thế lần xuất hiện đầu tiên
  2. Nếu searchđối số là một biểu thức chính quy không toàn cục thì sẽ replaceAll()đưa ra một TypeErrorngoại lệ.


Devwork

Devwork là Nền tảng TUYỂN DỤNG IT CẤP TỐC với mô hình kết nối Nhà tuyển dụng với mạng lưới hơn 30.000 headhunter tuyển dụng ở khắp mọi nơi.Với hơn 1800 doanh nghiệp IT tin dùng Devwork để :

  • Tối ưu chi phí
  • Tiết kiệm thời gian
  • Tăng tốc tuyển dụng tối đa
  • Đăng ký ngay Devwork trong hôm nay để tuyển dụng những tài năng ưu tú nhất.

    Tag Cloud:

    Tác giả: quyenntt

    Link chia sẻ

    Bình luận

    Bài viết liên quan

    Danh sách bài viết liên quan có thể bạn sẽ thích Xem thêm
    ngon-ngu-css-la-gi

    CSS Là Gì? 6 Điều Cần Biết Để Làm Chủ Phong Cách Website

    07:59 10/06/2025

    Bạn đã bao giờ tự hỏi làm thế nào mà các trang web lại có thể đẹp mắt và chuyên nghiệp đến vậy? Bí mật nằm ở CSS, một ngôn ngữ không thể thiếu trong thế giới thiết kế web. Trong bài viết này, hãy cùng Devwork khám phá CSS là gì, cách nó hoạt động, và làm thế nào để bạn có thể bắt đầu học CSS ngay hôm nay nhé!...

    Perl Là Gì? Lý Do Bạn Nên Biết Perl Là Gì Và Ứng Dụng Thực Tế

    07:52 10/06/2025

    Bạn có bao giờ tự hỏi “Perl là gì?” và tại sao lại có nhiều người lập trình vẫn tin tưởng sử dụng ngôn ngữ này đến ngày nay? Bài viết dưới đây Devwork sẽ chia sẻ về Perl  từ định nghĩa cơ bản, lịch sử phát triển, các tính năng nổi bật cho đến ứng dụng thực tiễn giúp bạn có cái nhìn toàn diện và quyết định xem liệu Perl có phù hợp với dự án của bạn hay không nhé!

    ngon-ngu-lap-trinh-perl-la-gi

    Machine Learning là gì? 3 Loại Machine Learning Phổ Biến Nhất

    07:46 10/06/2025

    Trong thời đại số hiện nay, Machine Learning là gì? không chỉ là câu hỏi của những người mới bắt đầu tìm hiểu về trí tuệ nhân tạo mà còn là chủ đề nóng được thảo luận trong giới công nghệ. Bài viết dưới đây Devwork sẽ giúp bạn có cái nhìn toàn diện về Machine Learning, từ định nghĩa, cách thức hoạt động, các loại hình, ứng dụng thực tế cho đến cách bắt đầu học tập và áp dụng trong công việc như thế nào nhé!

    machine-learning-la-gi

    Quality Assurance ( QA ) Là Gì? Những Kỹ Năng Cần Có Của Một QA

    17:00 09/06/2025

    Trong thế giới công nghệ hiện đại, việc đảm bảo chất lượng sản phẩm là yếu tố then chốt quyết định sự thành công của bất kỳ doanh nghiệp nào. Vậy QA là gì? QA (Quality Assurance) không chỉ đơn thuần là một quy trình kiểm tra chất lượng, mà còn là một phần không thể thiếu trong phát triển phần mềm và các dịch vụ công nghệ. Bài viết này Devwork sẽ giúp bạn hiểu rõ về QA, công việc của bộ phận QA, những kỹ năng cần có, các lĩnh vực cần QA, và sự khác biệt giữa QA và QC.

    quality-assurance-la-gi
    socket-io-la-gi

    Socket.io là gì? Toàn tập về Socket.io cho người mới bắt đầu lập trình realtime

    10:36 09/06/2025

    Bạn đang muốn xây dựng một ứng dụng chat trực tuyến, bảng điều khiển dữ liệu hay game nhiều người chơi mà mọi thao tác phải cập nhật ngay lập tức? Vậy thì chắc chắn bạn sẽ gặp khái niệm socket.io. Vậy socket.io là gì? Tại sao nó lại được sử dụng phổ biến như vậy trong lập trình realtime? Bài viết này Devwork sẽ giúp bạn dù là người mới bắt đầu hiểu toàn diện về Socket.io từ lý thuyết, cách hoạt động, đến hướng dẫn sử dụng cụ thể.

    constructor-la-gi

    Constructor là gì? Tìm hiểu tất tần tật về constructor trong lập trình hướng đối tượng

    10:28 09/06/2025

    Trong lộ trình học về lập trình hướng đối tượng (OOP), constructor là một trong những khai niệm cơ bản nhưng cực kỳ quan trọng. Việc hiểu rõ constructor sẽ giúp bạn viết code tốt hơn, tối ưu hơn và tránh được những lỗi thường gặp khi làm việc với class và object. Đây cũng là nội dung then chốt trong nhiều ngôn ngữ lập trình như Java, C++, Python... Vậy constructor là gì? Cách hoạt động ra sao? Bài viết sau sẽ giúp bạn lý giải tất cả những thắc mắc đó một cách chi tiết nhất.