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, đã phục vụ một nguồn cảm hứng cho JavaScript trong những ngày đầu tiên, có phương pháp replaceAll() trên các chuỗi kể từ năm 1995!
Trong bài đăng này, bạn sẽ học cách thay thế tất cả các lần xuất hiện chuỗi trong JavaScript bằng cách chia và nối một chuỗi và
javascript
const resultingString = pieces.join(replace);
0 kết hợp với biểu thức chính quy toàn cầu.Hơn nữa, bạn sẽ đọc về chuỗi đề xuất mới.replaceall () (ở giai đoạn 4) mang lại tất cả các phương thức cho các chuỗi JavaScript. Đây là cách tiếp cận thuận tiện nhất.
1. Tách và tham gia một mảng
Nếu bạn Google làm thế nào để "thay thế tất cả các lần xuất hiện chuỗi trong JavaScript", rất có thể phương pháp đầ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:
- Chia
javascript
const resultingString = pieces.join(replace);
1 thànhjavascript
const resultingString = pieces.join(replace);
2 cho chuỗijavascript
const resultingString = pieces.join(replace);
3:
javascript
const pieces = string.split(search);
- Sau đó tham gia các phần đặt chuỗi
javascript
const resultingString = pieces.join(replace);
4 ở giữa:
javascript
const resultingString = pieces.join(replace);
Ví dụ: chúng ta hãy thay thế tất cả các khoảng trống
javascript
const resultingString = pieces.join(replace);
5 bằng dấu gạch nốijavascript
const resultingString = pieces.join(replace);
6 trong chuỗijavascript
const resultingString = pieces.join(replace);
7:javascript
const search = ' ';
const replaceWith = '-';
const result = 'duck duck go'.split(search).join(replaceWith);
result; // => 'duck-duck-go'
javascript
const resultingString = pieces.join(replace);
8 chia chuỗi thành các mảnh:javascript
const resultingString = pieces.join(replace);
9.Sau đó, các mảnh
javascript
const search = ' ';
const replaceWith = '-';
const result = 'duck duck go'.split(search).join(replaceWith);
result; // => 'duck-duck-go'
0 được nối bằng cách chènjavascript
const resultingString = pieces.join(replace);
6 vào giữa chúng, dẫn đến chuỗijavascript
const search = ' ';
const replaceWith = '-';
const result = 'duck duck go'.split(search).join(replaceWith);
result; // => 'duck-duck-go'
2.Đây là một chức năng trợ giúp tổng quát sử dụng phương pháp phân tách và tham gia:
javascript
function replaceAll(string, search, replace) {
return string.split(search).join(replace);
}
replaceAll('abba', 'a', 'i'); // => 'ibbi'
replaceAll('go go go!', 'go', 'move'); // => 'move move move!'
replaceAll('oops', 'z', 'y'); // => 'oops'
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 một chuỗi. Hãy tiếp tục tìm kiếm các lựa chọn thay thế tốt hơn.
2. Thay thế () bằng biểu thức chính quy toàn cầu
Phương thức chuỗi
javascript
const search = ' ';
const replaceWith = '-';
const result = 'duck duck go'.split(search).join(replaceWith);
result; // => 'duck-duck-go'
3 tìm kiếm và thay thế các lần xuất hiện của biểu thức chính quyjavascript
const search = ' ';
const replaceWith = '-';
const result = 'duck duck go'.split(search).join(replaceWith);
result; // => 'duck-duck-go'
4 bằng chuỗijavascript
const search = ' ';
const replaceWith = '-';
const result = 'duck duck go'.split(search).join(replaceWith);
result; // => 'duck-duck-go'
5.Để thực hiện phương thức
javascript
const search = ' ';
const replaceWith = '-';
const result = 'duck duck go'.split(search).join(replaceWith);
result; // => 'duck-duck-go'
6 thay thế tất cả các lần xuất hiện của mẫu, bạn phải kích hoạt cờ toàn cầu trên biểu thức thông thường:- Nối
javascript
const search = ' ';
const replaceWith = '-';
const result = 'duck duck go'.split(search).join(replaceWith);
result; // => 'duck-duck-go'
7 Sau khi kết thúc biểu thức thông thường theo nghĩa đen:javascript
const search = ' ';
const replaceWith = '-';
const result = 'duck duck go'.split(search).join(replaceWith);
result; // => 'duck-duck-go'
8 - Hoặc khi sử dụng hàm tạo biểu thức chính quy, hãy thêm
javascript
const search = ' ';
const replaceWith = '-';
const result = 'duck duck go'.split(search).join(replaceWith);
result; // => 'duck-duck-go'
9 vào đối số thứ hai:javascript
function replaceAll(string, search, replace) {
return string.split(search).join(replace);
}
replaceAll('abba', 'a', 'i'); // => 'ibbi'
replaceAll('go go go!', 'go', 'move'); // => 'move move move!'
replaceAll('oops', 'z', 'y'); // => 'oops'
0
Hãy thay thế tất cả các lần xuất hiện của
javascript
const resultingString = pieces.join(replace);
5 bằngjavascript
const resultingString = pieces.join(replace);
6:javascript
const searchRegExp = /\s/g;
const replaceWith = '-';
const result = 'duck duck go'.replace(searchRegExp, replaceWith);
result; // => 'duck-duck-go'
Biểu thức thông thường theo nghĩa đen
javascript
function replaceAll(string, search, replace) {
return string.split(search).join(replace);
}
replaceAll('abba', 'a', 'i'); // => 'ibbi'
replaceAll('go go go!', 'go', 'move'); // => 'move move move!'
replaceAll('oops', 'z', 'y'); // => 'oops'
3 (lưu ý cờ toàn cầujavascript
const search = ' ';
const replaceWith = '-';
const result = 'duck duck go'.split(search).join(replaceWith);
result; // => 'duck-duck-go'
7) khớp với không gianjavascript
const resultingString = pieces.join(replace);
5.javascript
function replaceAll(string, search, replace) {
return string.split(search).join(replace);
}
replaceAll('abba', 'a', 'i'); // => 'ibbi'
replaceAll('go go go!', 'go', 'move'); // => 'move move move!'
replaceAll('oops', 'z', 'y'); // => 'oops'
6 thay thế tất cả các trận đấu củajavascript
function replaceAll(string, search, replace) {
return string.split(search).join(replace);
}
replaceAll('abba', 'a', 'i'); // => 'ibbi'
replaceAll('go go go!', 'go', 'move'); // => 'move move move!'
replaceAll('oops', 'z', 'y'); // => 'oops'
3 bằngjavascript
const resultingString = pieces.join(replace);
6, dẫn đếnjavascript
const search = ' ';
const replaceWith = '-';
const result = 'duck duck go'.split(search).join(replaceWith);
result; // => 'duck-duck-go'
2.Bạn có thể dễ dàng thay thế trường hợp không nhạy cảm bằng cách thêm cờ
javascript
const searchRegExp = /\s/g;
const replaceWith = '-';
const result = 'duck duck go'.replace(searchRegExp, replaceWith);
result; // => 'duck-duck-go'
0 vào biểu thức thông thường:javascript
const searchRegExp = /duck/gi;
const replaceWith = 'goose';
const result = 'DUCK Duck go'.replace(searchRegExp, replaceWith);
result; // => 'goose goose go'
Biểu thức thông thường
javascript
const searchRegExp = /\s/g;
const replaceWith = '-';
const result = 'duck duck go'.replace(searchRegExp, replaceWith);
result; // => 'duck-duck-go'
1 thực hiện tìm kiếm không nhạy cảm với trường hợp toàn cầu (lưu ýjavascript
const searchRegExp = /\s/g;
const replaceWith = '-';
const result = 'duck duck go'.replace(searchRegExp, replaceWith);
result; // => 'duck-duck-go'
0 vàjavascript
const search = ' ';
const replaceWith = '-';
const result = 'duck duck go'.split(search).join(replaceWith);
result; // => 'duck-duck-go'
7 cờ).javascript
const searchRegExp = /\s/g;
const replaceWith = '-';
const result = 'duck duck go'.replace(searchRegExp, replaceWith);
result; // => 'duck-duck-go'
1 khớp vớijavascript
const searchRegExp = /\s/g;
const replaceWith = '-';
const result = 'duck duck go'.replace(searchRegExp, replaceWith);
result; // => 'duck-duck-go'
5, cũng nhưjavascript
const searchRegExp = /\s/g;
const replaceWith = '-';
const result = 'duck duck go'.replace(searchRegExp, replaceWith);
result; // => 'duck-duck-go'
6.Gọi
javascript
const searchRegExp = /\s/g;
const replaceWith = '-';
const result = 'duck duck go'.replace(searchRegExp, replaceWith);
result; // => 'duck-duck-go'
7 thay thế tất cả các trận đấu của các chuỗi conjavascript
const searchRegExp = /\s/g;
const replaceWith = '-';
const result = 'duck duck go'.replace(searchRegExp, replaceWith);
result; // => 'duck-duck-go'
1 vớijavascript
const searchRegExp = /\s/g;
const replaceWith = '-';
const result = 'duck duck go'.replace(searchRegExp, replaceWith);
result; // => 'duck-duck-go'
9.2.1 Biểu thức chính quy 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ự
javascript
const searchRegExp = /duck/gi;
const replaceWith = 'goose';
const result = 'DUCK Duck go'.replace(searchRegExp, replaceWith);
result; // => 'goose goose go'
0 vì chúng có ý nghĩa đặc biệt trong biểu thức thông thường.Do đó, các ký tự đặc biệt là một vấn đề khi bạn muốn thay thế tất cả các hoạt động. Đây là một ví dụ:
javascript
const search = '+';
const searchRegExp = new RegExp(search, 'g'); // Throws SyntaxError
const replaceWith = '-';
const result = '5+2+1'.replace(searchRegExp, replaceWith);
Đoạn trích ở trên cố gắng chuyển đổi chuỗi tìm kiếm
javascript
const searchRegExp = /duck/gi;
const replaceWith = 'goose';
const result = 'DUCK Duck go'.replace(searchRegExp, replaceWith);
result; // => 'goose goose go'
1 thành một biểu thức thông thường. Nhưngjavascript
const searchRegExp = /duck/gi;
const replaceWith = 'goose';
const result = 'DUCK Duck go'.replace(searchRegExp, replaceWith);
result; // => 'goose goose go'
1 là một biểu thức chính quy không hợp lệ, do đójavascript
const searchRegExp = /duck/gi;
const replaceWith = 'goose';
const result = 'DUCK Duck go'.replace(searchRegExp, replaceWith);
result; // => 'goose goose go'
3 bị ném.Thoát khỏi nhân vật
javascript
const searchRegExp = /duck/gi;
const replaceWith = 'goose';
const result = 'DUCK Duck go'.replace(searchRegExp, replaceWith);
result; // => 'goose goose go'
4 giải quyết vấn đề.Tuy nhiên, nó có đáng để thoát khỏi chuỗi tìm kiếm bằng cách sử dụng một hàm như escaperegexp () để được sử dụng làm biểu thức thông thường không? Hầu như không.
2.2 thay thế () bằng một chuỗi
Nếu đối số đầu tiên
javascript
const resultingString = pieces.join(replace);
3 củajavascript
const searchRegExp = /duck/gi;
const replaceWith = 'goose';
const result = 'DUCK Duck go'.replace(searchRegExp, replaceWith);
result; // => 'goose goose go'
6 là một chuỗi, thì phương thức chỉ thay thế lần xuất hiện đầu tiên củajavascript
const resultingString = pieces.join(replace);
3:javascript
const search = ' ';
const replace = '-';
const result = 'duck duck go'.replace(search, replace);
result; // => 'duck-duck go'
javascript
const searchRegExp = /duck/gi;
const replaceWith = 'goose';
const result = 'DUCK Duck go'.replace(searchRegExp, replaceWith);
result; // => 'goose goose go'
8 chỉ thay thế sự xuất hiện đầu tiên của một không gian.3. Phương thức thay thế ()
Cuối cùng, phương thức
javascript
const searchRegExp = /duck/gi;
const replaceWith = 'goose';
const result = 'DUCK Duck go'.replace(searchRegExp, replaceWith);
result; // => 'goose goose go'
9 thay thế tất cả các lần xuất hiện của chuỗijavascript
const resultingString = pieces.join(replace);
3 bằngjavascript
const search = ' ';
const replaceWith = '-';
const result = 'duck duck go'.split(search).join(replaceWith);
result; // => 'duck-duck-go'
5.Hãy thay thế tất cả các lần xuất hiện của
javascript
const resultingString = pieces.join(replace);
5 bằngjavascript
const resultingString = pieces.join(replace);
6:javascript
const search = ' ';
const replaceWith = '-';
const result = 'duck duck go'.replaceAll(search, replaceWith);
result; // => 'duck-duck-go'
Biểu thức thông thường theo nghĩa đen
javascript
function replaceAll(string, search, replace) {
return string.split(search).join(replace);
}
replaceAll('abba', 'a', 'i'); // => 'ibbi'
replaceAll('go go go!', 'go', 'move'); // => 'move move move!'
replaceAll('oops', 'z', 'y'); // => 'oops'
3 (lưu ý cờ toàn cầujavascript
const search = ' ';
const replaceWith = '-';
const result = 'duck duck go'.split(search).join(replaceWith);
result; // => 'duck-duck-go'
7) khớp với không gianjavascript
const resultingString = pieces.join(replace);
5.javascript
function replaceAll(string, search, replace) {
return string.split(search).join(replace);
}
replaceAll('abba', 'a', 'i'); // => 'ibbi'
replaceAll('go go go!', 'go', 'move'); // => 'move move move!'
replaceAll('oops', 'z', 'y'); // => 'oops'
6 thay thế tất cả các trận đấu củajavascript
function replaceAll(string, search, replace) {
return string.split(search).join(replace);
}
replaceAll('abba', 'a', 'i'); // => 'ibbi'
replaceAll('go go go!', 'go', 'move'); // => 'move move move!'
replaceAll('oops', 'z', 'y'); // => 'oops'
3 bằngjavascript
const resultingString = pieces.join(replace);
6, dẫn đếnjavascript
const search = ' ';
const replaceWith = '-';
const result = 'duck duck go'.split(search).join(replaceWith);
result; // => 'duck-duck-go'
2.Bạn có thể dễ dàng thay thế trường hợp không nhạy cảm bằng cách thêm cờ
javascript
const searchRegExp = /\s/g;
const replaceWith = '-';
const result = 'duck duck go'.replace(searchRegExp, replaceWith);
result; // => 'duck-duck-go'
0 vào biểu thức thông thường:Biểu thức thông thường
javascript
const searchRegExp = /\s/g;
const replaceWith = '-';
const result = 'duck duck go'.replace(searchRegExp, replaceWith);
result; // => 'duck-duck-go'
1 thực hiện tìm kiếm không nhạy cảm với trường hợp toàn cầu (lưu ýjavascript
const searchRegExp = /\s/g;
const replaceWith = '-';
const result = 'duck duck go'.replace(searchRegExp, replaceWith);
result; // => 'duck-duck-go'
0 vàjavascript
const search = ' ';
const replaceWith = '-';
const result = 'duck duck go'.split(search).join(replaceWith);
result; // => 'duck-duck-go'
7 cờ).javascript
const searchRegExp = /\s/g;
const replaceWith = '-';
const result = 'duck duck go'.replace(searchRegExp, replaceWith);
result; // => 'duck-duck-go'
1 khớp vớijavascript
const searchRegExp = /\s/g;
const replaceWith = '-';
const result = 'duck duck go'.replace(searchRegExp, replaceWith);
result; // => 'duck-duck-go'
5, cũng nhưjavascript
const searchRegExp = /\s/g;
const replaceWith = '-';
const result = 'duck duck go'.replace(searchRegExp, replaceWith);
result; // => 'duck-duck-go'
6.Gọi
javascript
const searchRegExp = /\s/g;
const replaceWith = '-';
const result = 'duck duck go'.replace(searchRegExp, replaceWith);
result; // => 'duck-duck-go'
7 thay thế tất cả các trận đấu của các chuỗi conjavascript
const searchRegExp = /\s/g;
const replaceWith = '-';
const result = 'duck duck go'.replace(searchRegExp, replaceWith);
result; // => 'duck-duck-go'
1 vớijavascript
const searchRegExp = /\s/g;
const replaceWith = '-';
const result = 'duck duck go'.replace(searchRegExp, replaceWith);
result; // => 'duck-duck-go'
9.- 2.1 Biểu thức chính quy 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ự
javascript
const searchRegExp = /duck/gi;
const replaceWith = 'goose';
const result = 'DUCK Duck go'.replace(searchRegExp, replaceWith);
result; // => 'goose goose go'
0 vì chúng có ý nghĩa đặc biệt trong biểu thức thông thường.
Do đó, các ký tự đặc biệt là một vấn đề khi bạn muốn thay thế tất cả các hoạt động. Đây là một ví dụ:
Đoạn trích ở trên cố gắng chuyển đổi chuỗi tìm kiếm
javascript
const searchRegExp = /duck/gi;
const replaceWith = 'goose';
const result = 'DUCK Duck go'.replace(searchRegExp, replaceWith);
result; // => 'goose goose go'
1 thành một biểu thức thông thường. Nhưngjavascript
const searchRegExp = /duck/gi;
const replaceWith = 'goose';
const result = 'DUCK Duck go'.replace(searchRegExp, replaceWith);
result; // => 'goose goose go'
1 là một biểu thức chính quy không hợp lệ, do đójavascript
const searchRegExp = /duck/gi;
const replaceWith = 'goose';
const result = 'DUCK Duck go'.replace(searchRegExp, replaceWith);
result; // => 'goose goose go'
3 bị ném.Thoát khỏi nhân vật
javascript
const searchRegExp = /duck/gi;
const replaceWith = 'goose';
const result = 'DUCK Duck go'.replace(searchRegExp, replaceWith);
result; // => 'goose goose go'
4 giải quyết vấn đề.Thật không may, bạn không thể dễ dàng tạo các biểu thức chính quy từ một chuỗi trong thời gian chạy, bởi vì các ký tự đặc biệt của các biểu thức chính quy phải được thoát ra. Và đối phó với một biểu thức thường xuyên cho một sự thay thế đơn giản của các chuỗi là quá sức.
Cuối cùng, phương thức chuỗi mới
javascript
const searchRegExp = /duck/gi;
const replaceWith = 'goose';
const result = 'DUCK Duck go'.replace(searchRegExp, replaceWith);
result; // => 'goose goose go'
9 thay thế tất cả các lần xuất hiện chuỗi. Phương pháp này là một đề xuất ở Giai đoạn 4, và hy vọng, nó sẽ sớm đạt được một tiêu chuẩn JavaScript mới.Đề xuất của tôi là sử dụng
javascript
const search = ' ';
const replaceWith = '-';
const result = 'duck duck go'.replaceAll(search, replaceWith);
result; // => 'duck-duck-go'
1 để thay thế các chuỗi.Những cách khác để thay thế tất cả các lần xuất hiện chuỗi mà bạn biết? Hãy chia sẻ một bình luận dưới đây!