Hướng dẫn how do you replace a certain character in a string in javascript? - làm thế nào để bạn thay thế một ký tự nhất định trong một chuỗi trong javascript?
Ví dụThay thế Microsoft: Show
Đặt văn bản = "Truy cập Microsoft!"; Đặt kết quả = 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 đỏ"); 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 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ế.Phương thức 5 không thay đổi chuỗi ban đầu.Ghi chú
Hướng dẫn RegexpTham khảo RegEXP Cú pháp
NewValue
SearchValueYêu cầu. Giá trị, hoặc biểu thức chính quy, để tìm kiếm. NewValue Hãy tự mình thử » Bắt buộc. Giá trị mới (để thay thế bằng). Giá trị trả lại Hãy tự mình thử » Loại hìnhMột chuỗi Một chuỗi mới trong đó (các) giá trị được chỉ định đã được thay thế.
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:
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à:
Tôi đã tạo ra một câu đố cho việc này, và nó ở đây. Có hai thử nghiệm, Test1 (Subring) và Test2 (chuyển đổi mảng). Results:
Có vẻ như chuyển đổi mảng đánh bại chuỗi con theo 2 bậc độ lớn! Vậy - cái quái gì đã xảy ra ở đây ??? Điều thực sự xảy ra là tất cả các hoạt động trong Test2 được thực hiện trên chính mảng, sử dụng biểu thức gán như 9. Nhiệm vụ thực sự nhanh so với chất nền trên một chuỗi lớn, và rõ ràng rằng nó sẽ giành chiến thắng.Vì vậy, đó là tất cả về việc chọn công cụ phù hợp cho công việc. Lại. Phương thức Thử nóCú pháp
Thông số 1Có thể là một chuỗi hoặc một đối tượng với phương thức 8 - & nbsp; ví dụ điển hình là một biểu thức chính quy. Bất kỳ giá trị nào không có phương thức 8 sẽ bị ép buộc thành một chuỗi. 2Có thể là một chuỗi hoặc một hàm.
Giá trị trả vềMột chuỗi mới, với một, một số hoặc tất cả các trận đấu của mẫu được thay thế bằng cách thay thế được chỉ định. Sự mô tảPhương thức này không làm thay đổi giá trị chuỗi mà nó được gọi. Nó trả về một chuỗi mới. Một mẫu chuỗi sẽ chỉ được thay thế một lần. Để thực hiện tìm kiếm toàn cầu và thay thế, hãy sử dụng biểu thức thông thường bằng cờ 2 hoặc sử dụng 3 thay thế.Nếu 1 là một đối tượng có phương thức 8 (bao gồm các đối tượng 4), phương thức đó được gọi với chuỗi đích và 2 làm đối số. Giá trị trả về của nó trở thành giá trị trả về của 5. Trong trường hợp này, hành vi của 5 hoàn toàn được mã hóa bằng phương pháp 0 - ví dụ, bất kỳ đề cập nào về "các nhóm chụp" trong mô tả dưới đây thực sự là chức năng được cung cấp bởi 1.Nếu 1 là một chuỗi trống, sự thay thế được chuẩn bị để bắt đầu chuỗi.
Một regexp với cờ 2 là trường hợp duy nhất trong đó 5 thay thế nhiều lần. Để biết thêm thông tin về cách các thuộc tính Regex (đặc biệt là cờ dính) tương tác với 5, xem 6.Chỉ định một chuỗi là sự thay thếChuỗi thay thế có thể bao gồm các mẫu thay thế đặc biệt sau: 7 và 8 chỉ khả dụng nếu đối số 1 là đối tượng 4. Nếu 1 là một chuỗi hoặc nếu nhóm chụp tương ứng không có trong regex, thì mẫu sẽ được thay thế như một nghĩa đen. Nếu nhóm có mặt nhưng không được khớp (vì nó là một phần của sự phân tách), nó sẽ được thay thế bằng một chuỗi trống.
Chỉ định một chức năng là sự thay thếBạn có thể chỉ định một hàm là tham số thứ hai. Trong trường hợp này, chức năng sẽ được gọi sau khi trận đấu được thực hiện. Kết quả của hàm (giá trị trả về) sẽ được sử dụng làm chuỗi thay thế. Lưu ý: Các mẫu thay thế đặc biệt được đề cập ở trên không áp dụng cho các chuỗi được trả về từ hàm thay thế. The above-mentioned special replacement patterns do not apply for strings returned from the replacer function. Hàm có chữ ký sau:
Các đối số cho hàm như sau: 2Các chuỗi con phù hợp. (Tương ứng với 3 ở trên.) 4Chuỗi 5 được tìm thấy bởi một nhóm bắt giữ (bao gồm cả các nhóm chụp được đặt tên), cung cấp đối số đầu tiên cho 5 là đối tượng 4. . Nếu nhóm là một phần của sự khác biệt (ví dụ: 6), thì sự thay thế chưa từng có sẽ là 7. 8Phần bù của chuỗi con phù hợp trong toàn bộ chuỗi đang được kiểm tra. Ví dụ: nếu toàn bộ chuỗi là 9 và chuỗi con phù hợp là 0, thì đối số này sẽ là 1. 2Toàn bộ chuỗi đang được kiểm tra. 3Một đối tượng có các khóa là tên nhóm được sử dụng và có giá trị là các phần phù hợp ( 7 nếu không khớp). Chỉ có mặt nếu 1 chứa ít nhất một nhóm bắt giữ.Số lượng đối số chính xác phụ thuộc vào việc đối số đầu tiên có phải là đối tượng 4 hay không - và, nếu vậy, có bao nhiêu nhóm chụp.Ví dụ sau sẽ đặt 7 thành 8:
Hàm sẽ được gọi nhiều lần cho mỗi trận đấu đầy đủ sẽ được thay thế nếu biểu thức chính quy trong tham số đầu tiên là toàn cầu. Ví dụXác định biểu thức chính quy trong thay thế ()Trong ví dụ sau, biểu thức chính quy được xác định trong 5 và bao gồm cờ trường hợp bỏ qua.
Điều này ghi nhật ký 0.Sử dụng các cờ toàn cầu và Ignorecase với thay thế ()Thay thế toàn cầu chỉ có thể được thực hiện với một biểu thức thông thường. Trong ví dụ sau, biểu thức chính quy bao gồm các cờ trường hợp toàn cầu và bỏ qua cho phép 5 thay thế mỗi lần xuất hiện 2 trong chuỗi bằng 3.
Điều này ghi lại 4.Chuyển từ trong chuỗiTập lệnh sau đây chuyển các từ trong chuỗi. Đối với văn bản thay thế, tập lệnh sử dụng các nhóm chụp và các mẫu thay thế 8 và 9.
Điều này ghi lại 7.Sử dụng hàm nội tuyến sửa đổi các ký tự phù hợpTrong ví dụ này, tất cả các lần xuất hiện của các chữ cái viết hoa trong chuỗi được chuyển đổi thành chữ thường và dấu gạch nối được chèn ngay trước vị trí khớp. Điều quan trọng ở đây là các hoạt động bổ sung là cần thiết trên mục phù hợp trước khi nó được trả lại như một sự thay thế. Hàm thay thế chấp nhận đoạn trích phù hợp làm tham số của nó và sử dụng nó để biến đổi trường hợp và kết hợp dấu gạch nối trước khi quay lại.
Cho 8, điều này trả về 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 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, 0 sẽ không có tác dụng. 0Điều này là do 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 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 đươngVí 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 4. Hàm trả về số Celsius kết thúc với 5. Ví dụ: nếu số đầu vào là 6, hàm trả về 7. Nếu số là 8, hàm trả về 9.Biểu thức thông thường 00 kiểm tra bất kỳ số nào kết thúc bằng 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ó, 2. Hàm đặt số Celsius dựa trên số độ Fahrenheit được truyền trong một chuỗi cho hàm 03. 03 sau đó trả về số Celsius. Hàm này xấp xỉ cờ 05 của Perl. 1Tạo ra một người thay thế chungGiả 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ố 8, nên nó sẽ là tầm thường nếu regex được biết đến một cách thống kê. 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 8, 2, v.v. vào mảng. Thực tế là 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 8. 3Ví dụ 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 12 sẽ là 2 thay vì 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ì 3 là một đối tượng trong khi 2 là một chuỗi. 4Thông số kỹ thuật
Tính tương thích của trình duyệt webBảng BCD chỉ tải trong trình duyệt Xem thêmLàm thế nào để bạn thay thế một phần nhất định của một chuỗi javascript?thay thế () là một phương thức sẵn có trong javascript được sử dụng để thay thế một phần của chuỗi đã cho bằng một số chuỗi khác hoặc biểu thức chính quy. Chuỗi ban đầu sẽ không thay đổi. Tham số: Ở đây tham số A là biểu thức chính quy và B là một chuỗi sẽ thay thế nội dung của chuỗi đã cho. is an inbuilt method in JavaScript which is used to replace a part of the given string with some another string or a regular expression. The original string will remain unchanged. Parameters: Here the parameter A is regular expression and B is a string which will replace the content of the given string.
Làm thế nào để bạn thay thế một ký tự duy nhất trong một chuỗi javascript?Các chuỗi JavaScript là bất biến, chúng không thể được sửa đổi "tại chỗ" để bạn không thể sửa đổi một ký tự duy nhất.Trong thực tế, mọi sự xuất hiện của cùng một chuỗi là một đối tượng.you cannot modify a single character. in fact every occurence of the same string is ONE object.
Làm cách nào để thay thế một ký tự trong một chuỗi?Giống như StringBuilder, lớp StringBuffer có một phương thức được xác định trước cho mục đích này - setcharat ().Thay thế ký tự ở chỉ mục cụ thể bằng cách gọi phương thức này và truyền ký tự và chỉ mục làm tham số.setCharAt(). Replace the character at the specific index by calling this method and passing the character and the index as the parameter.
Làm thế nào để bạn thay thế một phần tử trong một chuỗi?Cú pháp thay thế ().. Cú pháp: String.replace (cũ, mới, đếm). Parameters:. Giá trị trả về: Nó trả về một bản sao của chuỗi trong đó tất cả các lần xuất hiện của một chuỗi con được thay thế bằng một chuỗi con khác .. |