Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Cách Thay Thế Khoảng Trắng Bên Trong Chuỗi Với JavaScript (Dùng RegEx)

Học cách thay thế khoảng trắng bên trong chuỗi với JavaScript dùng Regex (Regular Expressions) — công cụ tìm pattern trong text.

Regex (thường viết “RegEx hoặc “RegExp”) là công cụ hiệu năng làm việc với string (văn bản). Use cases phổ biến của Regex:

  • Text validation
  • Text searching

Hôm nay học từ ví dụ đơn giản dùng regex thay thế tất cả khoảng trắng trong dòng text (string) bằng rỗng — nhưng bạn có thể dùng code sau thay thế khoảng trắng bằng ký tự khác.

Khoảng trắng được coi là ký tự. Vì vậy mọi khoảng trắng giữa từ trong câu bạn đọc giờ được tính là một ký tự khoảng trắng.

Câu này có 6 ký tự khoảng trắng.

Để thay thế ký tự khoảng trắng, regex có meta-character gọi là \s tìm kiếm một ký tự khoảng trắng đơn lẻ, bao gồm newline, tabs, và Unicode.

Như sau:

const sentence = "This sentence has 6 white space characters." console.log(sentence.replace(/\s/g, "")) // Thissentencehas6whitespacecharacters.

Giải thích code:

  • Gắn replace() cho biến sentence tham chiếu chuỗi muốn xóa khoảng trắng.
  • Thêm meta character \s làm argument tìm ký tự khoảng trắng. Vì backslash (\) là ký tự escape dành riêng trong JavaScript, thêm / trước để unescape, thành /\s/.
  • Dùng cờ global g, báo JS tìm tất cả ký tự khoảng trắng từ chuỗi. Nếu không thêm g, chỉ instance đầu tiên (giữa This sentence) bị thay thế.
  • Cuối cùng, thay thế khoảng trắng bằng gì? Chuỗi rỗng "" — xóa khoảng trắng, gom mọi từ thành một từ.

Lưu ý: chưa modify biến sentence gốc, chỉ dùng console.log() in ra hình ảnh nếu dùng replace(/\s/g, "").

Nếu muốn thay đổi giá trị sentence không chứa khoảng trắng, gán cho biến mới, tham chiếu biến đó từ nay khi cần truy cập.

Như sau:

const sentence = "This sentence has 6 white space characters." const sentenceRemoveWhiteSpace = sentence.replace(/\s/g, "") console.log(sentenceRemoveWhiteSpace) // Thissentencehas6whitespacecharacters.

Chắc chắn toán học đúng, dùng regex method match() đếm số ký tự khoảng trắng trong sentence gốc xem có đúng 6 không:

console.log(sentence.match(/\s/g).length) // 6

Phù, đúng rồi!