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

Bạn có thể thay thế tất cả các lần xuất hiện của một chuỗi bằng cách sử dụng cách tiếp cận tách và nối, thay thế () bằng một biểu thức chính quy và phương thức chuỗi ReplaceAll () mới.

Bạn đang xem : js thay thế tất cả chuỗi

Không có cách nào dễ dàng để thay thế tất cả các lần xuất hiện chuỗi trong JavaScript. Java, vốn là nguồn cảm hứng cho JavaScript trong những ngày đầu tiên, có phương thức ReplaceAll () trên chuỗi kể từ năm 1995!

Trong bài đăng này, bạn 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, đồng thời kết hợp string.replace () với một biểu thức chính quy chung.

Hơn nữa, bạn sẽ đọc về đề xuất mới string.replaceAll () (ở giai đoạn 4) mang phương thức thay thế tất cả thành chuỗi JavaScript. Đây là cách tiếp cận thuận tiện nhất.

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

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

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

  1. Tách chuỗi thành các phần theo chuỗi search :
 

javascript

const

phần

=

chuỗi

.

phần tách

(

tìm kiếm

);

  1. Sau đó, nối các phần đặt chuỗi thay thế ở giữa:
 

javascript

const

Chuỗi kết quả

=

các mảnh

.

tham gia

(

thay thế

);

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

 

javascript

const

< / p>

tìm kiếm

=

''

;

< p> const

ReplaceWith

=

'-'

;

const

kết quả

=

'duck duck go'

.

tách

(

tìm kiếm

).

tham gia

(

thay thếWith

);

kết quả

;

// = & gt; 'duck-duck-go'

'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 bằng cách chèn '-' vào giữa chúng , dẫn đến chuỗi 'duck-duck-go' .

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

 

javascript

hàm

ReplaceAll

(

chuỗi

,

tìm kiếm

,

thay thế

) {

trả lại

chuỗi

.

chia nhỏ

(

tìm kiếm

).

tham gia

(

thay thế

);

} < / p>

ReplaceAll

(

'abba' < / p>

,

'a'

,

'i'

);

// = & gt; 'ibbi'

ReplaceAll

(

'go go go!'

,

'đi'

,

'di chuyển'

);

// = & gt; 'di chuyển di chuyển di chuyển!'

ReplaceAll

(

'oops'

,

'z'

,

'y'

);

// = & gt; 'rất tiếc'

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 đó trở lại thành một chuỗi. Hãy tiếp tục tìm kiếm các giải pháp thay thế tốt hơn.

2. thay thế () bằng một biểu thức chính quy toàn cầu

Phương thức chuỗi string.replace (regExpSearch, ReplaceWith) tìm kiếm và thay thế các lần xuất hiện của biểu thức chính quy regExpSearch bằng chuỗi ReplaceWith . < / p>

Để thực hiện 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 g sau vào cuối cụm từ thông dụng: / 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 '-' :

 

javascript

const

searchRegExp

=

/ \ s /

g

;

const

ReplaceWith

=

'-'

;

const

kết quả

=

'duck duck go'

.

thay thế

(

searchRegExp

,

thay thếWith

);

kết quả

;

// = & gt; 'duck-duck-go'

Cụm từ thông dụng / \ s / g (lưu ý rằng cờ chung của g ) khớp với khoảng trắng '' .

'duck duck go'.replace (/ \ s / g,' - ') thay thế tất cả các kết quả phù hợp của / \ s / g bằng ' - ', kết quả là ' duck-duck-go '.

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

 

javascript

const

< / p>

searchRegExp

=

/ duck /

gi

;

< p class = "line dim">

const

ReplaceWith

=

'ngỗng'

< p>;

const

kết quả

=

'DUCK Duck go'

.

thay thế

(

< p> searchRegExp

,

thay thếWith

);

kết quả

;

// = & gt; 'ngỗng đi'

Biểu thức chính quy / duck / gi thực hiện tìm kiếm toàn cục không phân biệt chữ hoa chữ thường (lưu ý cờ i g ). / duck / gi khớp với 'DUCK' , cũng như 'Duck' .

Gọi 'DUCK Duck go'.replace (/ duck / gi,' ngỗng ') thay thế tất cả các kết quả phù hợp của chuỗi con / duck / gi bằng ' ngỗng '.

2.1 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.

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

 

javascript

const

< / p>

tìm kiếm

=

'+'

;

< / p>

const

searchRegExp

=

new

RegExp

(

tìm kiếm

,

'g'

);

// Ném SyntaxError

const

ReplaceWith

=

'-'

;

const

kết quả

=

'5 + 2 + 1'

.

thay thế

(

searchRegExp

,

thay thếWith

);

Đoạn mã trên cố gắng chuyển đổi 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ệ, do đó SyntaxError: Biểu thức chính quy không hợp lệ: / + / được ném ra.

Thoát ký tự '\\ +' sẽ giải quyết được vấn đề.

Tuy nhiên, có đáng để thoát chuỗi tìm kiếm bằng một hàm như EscapeRegExp () để được sử dụng như một biểu thức chính quy không? Nhiều khả năng là không.

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

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

 

javascript

const

< / p>

tìm kiếm

=

''

;

< p> const

thay thế

=

'-'

;

const

kết quả

=

'duck duck go'

.

thay thế

(

tìm kiếm

,

thay thế

);

kết quả

;

// = & gt; 'duck-duck go'

'duck duck go'.replace (' ',' - ') chỉ thay thế phần xuất hiện đầu tiên của dấu cách.

3. phương thức ReplaceAll ()

Cuối cùng, phương thức string.replaceAll (search, ReplaceWith) thay thế tất cả các lần xuất hiện của chuỗi search bằng ReplaceWith .

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

 

javascript

const

tìm kiếm

=

''

;

const

thay thếWith

=

'-'

;

const

kết quả

=

'duck duck go'

.

ReplaceAll

(

tìm kiếm

,

thay thế bằng

);

kết quả

;

// = & gt; 'duck-duck-go'

'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 hiện tại, phương thức hỗ trợ trong các trình duyệt còn hạn chế và bạn có thể yêu cầu polyfill .

3.1 Sự khác biệt giữa ReplaceAll () và Replace ()

Các phương thức chuỗi ReplaceAll (search, ReplaceWith) Replace (tìm kiếm, ReplaceWith) hoạt động theo cùng một cách, mong đợi 2 điều:

  1. Nếu đối số search là một chuỗi, thì ReplaceAll () sẽ thay thế tất cả các lần xuất hiện của search bằng ReplaceWith , trong khi Replace () chỉ lần xuất hiện đầu tiên
  2. Nếu đối số search là một biểu thức chính quy không phải toàn cục, thì ReplaceAll () ném một ngoại lệ TypeError .

4. Bài học chính

Phương pháp cơ bản để thay thế tất cả các lần xuất hiện là chia chuỗi thành nhiều phần theo chuỗi tìm kiếm, nối lại chuỗi đặt chuỗi thay thế giữa các phần: string.split (search) .join (ReplaceWith) . Cách tiếp cận này hiệu quả, nhưng nó khó hiểu.

Một cách tiếp cận khác là sử dụng string.replace (/ SEARCH / g, ReplaceWith) với một biểu thức chính quy có cờ chung được bật.

Rất tiếc, bạn không thể dễ dàng tạo biểu thức chính quy từ một chuỗi trong thời gian chạy, vì các ký tự đặc biệt của biểu thức chính quy phải được thoát ra. Và việc xử lý một biểu thức chính quy để thay thế các chuỗi đơn giản là quá sức.

Cuối cùng, phương thức chuỗi mới string.replaceAll (search, ReplaceWith) thay thế tất cả các lần xuất hiện của chuỗi. Phương pháp này là một đề xuất ở giai đoạn 4 và hy vọng rằng nó sẽ sớm xuất hiện trong một tiêu chuẩn JavaScript mới.

Đề xuất của tôi là sử dụng string.replaceAll () để thay thế các chuỗi.

Bạn biết những cách nào khác để thay thế tất cả các lần xuất hiện chuỗi? Hãy chia sẻ trong một bình luận bên dưới!


Xem thêm những thông tin liên quan đến chủ đề js thay thế tất cả chuỗi

Replace All Special Characters in JavaScript

  • Tác giả: NovaComputing
  • Ngày đăng: 2017-05-20
  • Đánh giá: 4 ⭐ ( 4611 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Hey everybody! Remember to comment, rate, and subscribe! I may do giveaways as the channel grows so feel free to ask for tutorials!

Thay thế ký tự trong chuỗi JavaScript (replace)

  • Tác giả: laptrinhcanban.com
  • Đánh giá: 4 ⭐ ( 5262 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Hướng dẫn thay thế ký tự trong chuỗi JavaScript. Bạn sẽ học được cách thay thế ký tự trong chuỗi JavaScript bằng phương thức replace() sau bài học này.

Các hàm xử lý chuỗi trong Javascript

  • Tác giả: toidicode.com
  • Đánh giá: 5 ⭐ ( 1484 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Chuỗi - String là một thứ không thể thiếu trong một ngôn ngữ và đi kèm theo nó là hàng loạt các hàm xử lý chuỗi sẵn có, rất hữu dụng. Và đương nhiên trong javascript cũng thế.

JavaScript - Thay thế tất cả các dấu phẩy trong một chuỗi

  • Tác giả: vi.dpbhouse.com
  • Đánh giá: 4 ⭐ ( 3327 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Tôi có một chuỗi với nhiều dấu phẩy và phương thức thay thế chuỗi sẽ chỉ thay đổi chuỗi đầu tiên: var mystring = "this, is, a, test" mystring.replace (",", "newchar", -1) Kết quả: " thisnewcharis, a, te ...

Một số hàm xử lý chuỗi hay dùng trong JavaScript

  • Tác giả: hocjavascript.net
  • Đánh giá: 4 ⭐ ( 1413 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Trong bài viết này, cùng mình tìm hiểu một số hàm xử lý chuỗi hay dùng trong javascript. Đầu tiên hãy cùng tìm hiểu chuỗi là gì và các thao

JavaScript - Thay thế tất cả các dấu phẩy trong một chuỗi

  • Tác giả: vi.bannikherafarm.com
  • Đánh giá: 5 ⭐ ( 5431 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Tôi có một chuỗi với nhiều dấu phẩy và phương thức thay thế chuỗi sẽ chỉ thay đổi chuỗi đầu tiên: var mystring = "this, is, a, test" mystring.replace (",", "newchar", -1) Kết quả: " thisnewcharis, a, te ...

Cách thay thế tất cả các phiên bản của một chuỗi trong JavaScript

  • Tác giả: s11.galaxyz.net
  • Đánh giá: 4 ⭐ ( 8335 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Thay thế văn bản trong chuỗi là một nhiệm vụ phổ biến trong JavaScript. Trong bài viết này, bạn sẽ xem xét việc sử dụng replace và biểu thức chính quy để thay thế văn bản.

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình

Xem Thêm  Cách làm cho href mở trong đoạn mã html liên kết tab mới - href mở trong tab mới