Ví dụ
Thay thế Microsoft:
Đặt văn bản = "Truy cập Microsoft!"; Đặt kết quả = text.replace ["Microsoft", "W3Schools"];
let result = text.replace["Microsoft", "W3Schools"];
Hãy tự mình thử »
Thay thế toàn cầu:
hãy để văn bản = "Mr Blue có một ngôi nhà màu xanh và một chiếc xe màu xanh"; Đặt kết quả = text.replace [/blue/g, "màu đỏ"];
let result = text.replace[/blue/g, "red"];
Hãy tự mình thử »
Thay thế toàn cầu:
hãy để văn bản = "Mr Blue có một ngôi nhà màu xanh và một chiếc xe màu xanh"; Đặt kết quả = text.replace [/blue/g, "màu đỏ"];
Thêm ví dụ dưới đây.
Định nghĩa và cách sử dụng
Phương thức
replace[pattern, replacement]
5 tìm kiếm một chuỗi cho một giá trị hoặc biểu thức chính quy.Phương thức replace[pattern, replacement]
5 trả về một chuỗi mới với [các] giá trị được thay thế.
replace[pattern, replacement]
Phương thức
replace[pattern, replacement]
5 không thay đổi chuỗi ban đầu.Ghi chú
- Nếu bạn thay thế một giá trị, chỉ có trường hợp đầu tiên sẽ được thay thế. Để thay thế tất cả các trường hợp, hãy sử dụng biểu thức thông thường với bộ sửa đổi G.
- Đọc thêm về các biểu thức thông thường trong của chúng tôi:
Hướng dẫn Regexp
Tham khảo RegEXP
Cú pháp
String.replace [SearchValue, NewValue] | Thông số |
Tham số | Sự mô tả The value, or regular expression, to search for. |
SearchValue | Yêu cầu. Giá trị, hoặc biểu thức chính quy, để tìm kiếm. The new value [to replace with]. |
NewValue
Bắt buộc. Giá trị mới [để thay thế bằng]. | Thông số |
Tham số | Sự mô tả |
SearchValue
Yêu cầu. Giá trị, hoặc biểu thức chính quy, để tìm kiếm.
NewValue
let result = text.replace[/blue/gi, "red"];
Hãy tự mình thử »
Bắt buộc. Giá trị mới [để thay thế bằng].
Giá trị trả lại
let result = text.replace[/blue|house|car/gi, function
[x] {
return x.toUpperCase[];
}];
Hãy tự mình thử »
Loại hình
Một chuỗi
Một chuỗi mới trong đó [các] giá trị được chỉ định đã được thay thế.
Nhiều ví dụ hơn | Thay thế toàn cầu, không nhạy cảm trường hợp: | hãy để văn bản = "Mr Blue có một ngôi nhà màu xanh và một chiếc xe màu xanh"; Đặt kết quả = text.replace [/blue/gi, "màu đỏ"]; | Một hàm để trả về văn bản thay thế: | hãy để văn bản = "Mr Blue có một ngôi nhà màu xanh và một chiếc xe màu xanh"; Đặt kết quả = text.replace [/blue | house | car/gi, function [x] {& nbsp; & nbsp; return x.touppercase [];}]; | Hỗ trợ trình duyệt |
5 là tính năng ECMAScript1 [ES1]. | 5 là tính năng ECMAScript1 [ES1]. | 5 là tính năng ECMAScript1 [ES1]. | 5 là tính năng ECMAScript1 [ES1]. | 5 là tính năng ECMAScript1 [ES1]. | 5 là tính năng ECMAScript1 [ES1]. |
Có rất nhiều câu trả lời ở đây và tất cả chúng đều dựa trên hai phương pháp:
- Phương thức1: Chia chuỗi bằng cách sử dụng hai chuỗi con và nhét ký tự giữa chúng
- Phương thức2: Chuyển đổi chuỗi thành mảng ký tự, thay thế một thành viên mảng và tham gia nó
Cá nhân, tôi sẽ sử dụng hai phương pháp này trong các trường hợp khác nhau. Hãy để tôi giải thích.
@Fabiophms: Phương pháp của bạn là phương pháp ban đầu tôi đã sử dụng và tôi sợ rằng nó rất tệ trên chuỗi có rất nhiều ký tự. Tuy nhiên, câu hỏi là rất nhiều nhân vật? Tôi đã thử nghiệm nó trên các đoạn "Lorem Ipsum" và phải mất vài mili giây. Sau đó, tôi đã kiểm tra nó trên chuỗi lớn hơn 10 lần - thực sự không có sự khác biệt lớn. HM.
@vsync, @Cory Mawhorter: Nhận xét của bạn không rõ ràng; Tuy nhiên, một lần nữa, một chuỗi lớn là gì? Tôi đồng ý rằng đối với hiệu suất 32 ... 100kB sẽ tốt hơn và người ta nên sử dụng biến thể con cho hoạt động thay thế ký tự này.
Nhưng điều gì sẽ xảy ra nếu tôi phải thực hiện khá nhiều thay thế?
Tôi cần phải thực hiện các bài kiểm tra của riêng mình để chứng minh những gì nhanh hơn trong trường hợp đó. Giả sử chúng ta có một thuật toán sẽ thao tác một chuỗi tương đối ngắn bao gồm 1000 ký tự. Chúng tôi hy vọng rằng trung bình mỗi ký tự trong chuỗi đó sẽ được thay thế ~ 100 lần. Vì vậy, mã để kiểm tra một cái gì đó như thế này là:
var str = "... {A LARGE STRING HERE} ...";
for[var i=0; i 0 ? '-' : ''] + match.toLowerCase[];
}
return propertyName.replace[/[A-Z]/g, upperToHyphenLower];
}
Cho
const re = /[\w+]\s[\w+]/;
const str = 'John Smith';
const newstr = str.replace[re, '$2, $1'];
console.log[newstr]; // Smith, John
8, điều này trả về const re = /[\w+]\s[\w+]/;
const str = 'John Smith';
const newstr = str.replace[re, '$2, $1'];
console.log[newstr]; // Smith, John
9.Bởi vì chúng tôi muốn chuyển đổi thêm kết quả của trận đấu trước khi thay thế cuối cùng, chúng tôi phải sử dụng một chức năng. Điều này buộc việc đánh giá trận đấu trước phương pháp
function styleHyphenFormat[propertyName] {
function upperToHyphenLower[match, offset, string] {
return [offset > 0 ? '-' : ''] + match.toLowerCase[];
}
return propertyName.replace[/[A-Z]/g, upperToHyphenLower];
}
0. Nếu chúng tôi đã cố gắng làm điều này bằng cách sử dụng trận đấu mà không có chức năng, function styleHyphenFormat[propertyName] {
function upperToHyphenLower[match, offset, string] {
return [offset > 0 ? '-' : ''] + match.toLowerCase[];
}
return propertyName.replace[/[A-Z]/g, upperToHyphenLower];
}
0 sẽ không có tác dụng.replace[pattern, replacement]
0Điều này là do
function styleHyphenFormat[propertyName] {
function upperToHyphenLower[match, offset, string] {
return [offset > 0 ? '-' : ''] + match.toLowerCase[];
}
return propertyName.replace[/[A-Z]/g, upperToHyphenLower];
}
2 trước tiên sẽ được đánh giá là một chuỗi theo nghĩa đen [dẫn đến cùng một function styleHyphenFormat[propertyName] {
function upperToHyphenLower[match, offset, string] {
return [offset > 0 ? '-' : ''] + match.toLowerCase[];
}
return propertyName.replace[/[A-Z]/g, upperToHyphenLower];
}
3] trước khi sử dụng các ký tự làm mẫu.Thay thế một mức độ Fahrenheit bằng C, tương đương
Ví dụ sau đây thay thế một mức độ Fahrenheit với mức độ tương đương của nó. Bằng cấp Fahrenheit nên là một số kết thúc với
function styleHyphenFormat[propertyName] {
function upperToHyphenLower[match, offset, string] {
return [offset > 0 ? '-' : ''] + match.toLowerCase[];
}
return propertyName.replace[/[A-Z]/g, upperToHyphenLower];
}
4. Hàm trả về số Celsius kết thúc với function styleHyphenFormat[propertyName] {
function upperToHyphenLower[match, offset, string] {
return [offset > 0 ? '-' : ''] + match.toLowerCase[];
}
return propertyName.replace[/[A-Z]/g, upperToHyphenLower];
}
5. Ví dụ: nếu số đầu vào là function styleHyphenFormat[propertyName] {
function upperToHyphenLower[match, offset, string] {
return [offset > 0 ? '-' : ''] + match.toLowerCase[];
}
return propertyName.replace[/[A-Z]/g, upperToHyphenLower];
}
6, hàm trả về function styleHyphenFormat[propertyName] {
function upperToHyphenLower[match, offset, string] {
return [offset > 0 ? '-' : ''] + match.toLowerCase[];
}
return propertyName.replace[/[A-Z]/g, upperToHyphenLower];
}
7. Nếu số là function styleHyphenFormat[propertyName] {
function upperToHyphenLower[match, offset, string] {
return [offset > 0 ? '-' : ''] + match.toLowerCase[];
}
return propertyName.replace[/[A-Z]/g, upperToHyphenLower];
}
8, hàm trả về function styleHyphenFormat[propertyName] {
function upperToHyphenLower[match, offset, string] {
return [offset > 0 ? '-' : ''] + match.toLowerCase[];
}
return propertyName.replace[/[A-Z]/g, upperToHyphenLower];
}
9.Biểu thức thông thường
replace[pattern, replacement]
00 kiểm tra bất kỳ số nào kết thúc bằng replace[pattern, replacement]
01. Số lượng độ Fahrenheit có thể truy cập được vào hàm thông qua tham số thứ hai của nó, const str = 'Twas the night before Xmas...';
const newstr = str.replace[/xmas/i, 'Christmas'];
console.log[newstr]; // Twas the night before Christmas...
2. Hàm đặt số Celsius dựa trên số độ Fahrenheit được truyền trong một chuỗi cho hàm replace[pattern, replacement]
03. replace[pattern, replacement]
03 sau đó trả về số Celsius. Hàm này xấp xỉ cờ replace[pattern, replacement]
05 của Perl.replace[pattern, replacement]
1Tạo ra một người thay thế chung
Giả sử chúng tôi muốn tạo một bộ thay thế nối dữ liệu bù vào mỗi chuỗi phù hợp. Bởi vì hàm thay thế đã nhận được tham số
const str = 'Twas the night before Xmas...';
const newstr = str.replace[/xmas/i, 'Christmas'];
console.log[newstr]; // Twas the night before Christmas...
8, nên nó sẽ là tầm thường nếu regex được biết đến một cách thống kê.replace[pattern, replacement]
2Tuy nhiên, người thay thế này sẽ khó khái quát nếu chúng ta muốn nó hoạt động với bất kỳ mẫu Regex nào. Bộ thay thế là variadic - số lượng đối số mà nó nhận được phụ thuộc vào số lượng nhóm bắt giữ có mặt. Chúng ta có thể sử dụng các tham số REST, nhưng nó cũng sẽ thu thập
const str = 'Twas the night before Xmas...';
const newstr = str.replace[/xmas/i, 'Christmas'];
console.log[newstr]; // Twas the night before Christmas...
8, const re = /apples/gi;
const str = 'Apples are round, and apples are juicy.';
const newstr = str.replace[re, 'oranges'];
console.log[newstr]; // oranges are round, and oranges are juicy.
2, v.v. vào mảng. Thực tế là const re = /apples/gi;
const str = 'Apples are round, and apples are juicy.';
const newstr = str.replace[re, 'oranges'];
console.log[newstr]; // oranges are round, and oranges are juicy.
3 có thể hoặc không được thông qua tùy thuộc vào danh tính của Regex cũng sẽ khiến cho việc biết đối số nào tương ứng với const str = 'Twas the night before Xmas...';
const newstr = str.replace[/xmas/i, 'Christmas'];
console.log[newstr]; // Twas the night before Christmas...
8.replace[pattern, replacement]
3Ví dụ
replace[pattern, replacement]
11 ở trên không hoạt động khi Regex chứa một nhóm được đặt tên, bởi vì trong trường hợp này replace[pattern, replacement]
12 sẽ là const re = /apples/gi;
const str = 'Apples are round, and apples are juicy.';
const newstr = str.replace[re, 'oranges'];
console.log[newstr]; // oranges are round, and oranges are juicy.
2 thay vì const str = 'Twas the night before Xmas...';
const newstr = str.replace[/xmas/i, 'Christmas'];
console.log[newstr]; // Twas the night before Christmas...
8.Thay vào đó, bạn cần trích xuất một vài đối số cuối cùng dựa trên loại, vì
const re = /apples/gi;
const str = 'Apples are round, and apples are juicy.';
const newstr = str.replace[re, 'oranges'];
console.log[newstr]; // oranges are round, and oranges are juicy.
3 là một đối tượng trong khi const re = /apples/gi;
const str = 'Apples are round, and apples are juicy.';
const newstr = str.replace[re, 'oranges'];
console.log[newstr]; // oranges are round, and oranges are juicy.
2 là một chuỗi.replace[pattern, replacement]
4Thông số kỹ thuật
Thông số kỹ thuật ngôn ngữ Ecmascript # sec-string.prototype.replace # sec-string.prototype.replace |
Tính tương thích của trình duyệt web
Bảng BCD chỉ tải trong trình duyệt