🏠 Quay trở lại trang chủ
Tìm cách sử dụng Regex để thay thế tất cả không gian trắng bên trong chuỗi bằng cách sử dụng JavaScript
⭐️ NEW JAVASCRIPT COURSE launching in November! ⭐️Thay thế tất cả không gian trắng bên trong một chuỗi là một nhu cầu rất phổ biến.
Ví dụ: lần cuối tôi sử dụng điều này bên trong điểm cuối API nhận được hình ảnh. Tôi đã sử dụng tên hình ảnh gốc để lưu trữ nó, nhưng nếu nó chứa một khoảng trống thì nó đã phá vỡ chức năng của tôi (hoặc các ký tự đặc biệt khác, nhưng hãy để tập trung vào không gian)
Vì vậy, tôi đã nghiên cứu cách tốt nhất để làm những gì tôi muốn. Hóa ra, một biểu hiện thông thường là những gì tôi cần!
Đây là, đầy đủ
const name = 'Hi my name is Flavio' name.replace(/\s/g, '') //HimynameisFlavio
Ký tự meta \s trong các biểu thức chính quy JavaScript phù hợp với bất kỳ ký tự khoảng trắng nào: không gian, tab, newlines và không gian Unicode. Và cờ g bảo JavaScript thay thế nó nhiều lần. Nếu bạn bỏ lỡ nó, nó sẽ chỉ thay thế lần xuất hiện đầu tiên của không gian trắng.
Hãy nhớ rằng giá trị name không thay đổi. Vì vậy, bạn cần gán nó cho một biến mới, nếu cần:
const name = 'Hi my name is Flavio' const nameCleaned = name.replace(/\s/g, '')
Bạn cần tìm một số tùy chọn thay thế
str = str.replace(/ /g, "+");Đây là một cách biểu hiện thường xuyên để thực hiện một sự thay thế.
function ReplaceAll(Source, stringToFind, stringToReplace) { var temp = Source; var index = temp.indexOf(stringToFind); while (index != -1) { temp = temp.replace(stringToFind, stringToReplace); index = temp.indexOf(stringToFind); } return temp; } String.prototype.ReplaceAll = function (stringToFind, stringToReplace) { var temp = this; var index = temp.indexOf(stringToFind); while (index != -1) { temp = temp.replace(stringToFind, stringToReplace); index = temp.indexOf(stringToFind); } return temp; };Thay thế một ký tự bằng một khoảng trống trong javascript #
Sử dụng phương thức const name = 'Hi my name is Flavio' const nameCleaned = name.replace(/\s/g, '') 0 để thay thế một ký tự bằng một không gian. Phương thức lấy ký tự được thay thế và chuỗi thay thế làm tham số, ví dụ: const name = 'Hi my name is Flavio' const nameCleaned = name.replace(/\s/g, '') 1. Phương thức trả về một chuỗi mới với tất cả các lần xuất hiện của ký tự được thay thế bằng cách thay thế được cung cấp.
Copied!
const str = 'apple_banana_kiwi'; // ✅️ replace all occurrences with a space const result1 = str.replaceAll('_', ' '); console.log(result1); // 👉️ "apple banana kiwi" // ✅️ replace only first occurrence with space const result2 = str.replace('_', ' '); console.log(result2); // 👉️ "apple banana_kiwi" // ✅️ replace all occurrences using regex const result3 = str.replace(/_/g, ' '); console.log(result3); // 👉️ "apple banana kiwi"Chúng tôi đã chuyển 2 tham số sau cho phương thức chuỗi.RepLaceALL:
- nhân vật chúng tôi muốn thay thế. Chúng tôi đã sử dụng một dấu gạch dưới trong ví dụ.
- sự thay thế cho mỗi trận đấu của nhân vật
Phương thức const name = 'Hi my name is Flavio' const nameCleaned = name.replace(/\s/g, '') 2 không thay đổi chuỗi gốc, nó trả về một chuỗi mới. Chuỗi là bất biến trong JavaScript.
Nếu bạn chỉ cần thay thế lần xuất hiện đầu tiên của ký tự bằng một không gian, bạn có thể sử dụng phương thức String.Replace thay thế.
Theo mặc định, phương thức thay thế lần xuất hiện đầu tiên của chuỗi / biểu thức chính quy.
Copied!
const str = 'apple_banana_kiwi'; const result2 = str.replace('_', ' '); console.log(result2); // 👉️ "apple banana_kiwi"Các tham số giống như với phương thức const name = 'Hi my name is Flavio' const nameCleaned = name.replace(/\s/g, '') 2 - chuỗi chúng tôi muốn khớp và thay thế cho mỗi trận đấu.
Nếu bạn cần thay thế một ký tự cụ thể bằng cách sử dụng biểu thức chính quy, bạn có thể chuyển biểu thức chính quy dưới dạng tham số cho phương thức const name = 'Hi my name is Flavio' const nameCleaned = name.replace(/\s/g, '') 4.
Ví dụ: nếu bạn cần thay thế bất kỳ chữ số nào, bạn muốn sử dụng biểu thức thông thường.
Copied!
const str = 'apple0banana1kiwi'; const result3 = str.replace(/[0-9]/g, ' '); console.log(result3); // 👉️ "apple banana kiwi"Tiền đạo chém const name = 'Hi my name is Flavio' const nameCleaned = name.replace(/\s/g, '') 5 đánh dấu sự khởi đầu và kết thúc của biểu thức chính quy.
Các dấu ngoặc vuông const name = 'Hi my name is Flavio' const nameCleaned = name.replace(/\s/g, '') 6 được gọi là lớp ký tự và khớp với phạm vi chữ số từ const name = 'Hi my name is Flavio' const nameCleaned = name.replace(/\s/g, '') 7 đến const name = 'Hi my name is Flavio' const nameCleaned = name.replace(/\s/g, '') 8.
Chúng tôi đã sử dụng cờ g (toàn cầu) vì chúng tôi muốn khớp với tất cả các lần xuất hiện của một chữ số trong chuỗi, và không chỉ là lần xuất hiện đầu tiên.
Nếu bạn cần trợ giúp đọc hoặc viết một biểu thức thông thường, hãy xem The Regex Cheatsheet này bằng các tài liệu MDN, nó đã phục vụ tôi tốt trong nhiều năm qua.