Thay thế tất cả các ký tự khoảng trắng


Câu trả lời:


315

Bạn muốn \s

Khớp với một ký tự khoảng trắng, bao gồm khoảng trắng, tab, nguồn cấp mẫu, nguồn cấp dữ liệu.

Tương đương với

[ \f\n\r\t\v\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]

trong Firefox[ \f\n\r\t\v]trong IE .


str = str.replace(/\s/g, "X");

41
+1 để ghi nhớ cho thấy replacehàm không sửa đổi str, vì vậy bạn phải gán lại.
FishBasketGordo

1
Trong một hàm, bạn có thể trả về str.replace, vì vậy bạn không cần gán trong phạm vi đó.
Steve K

Hãy nhớ cho R sử dụng perl = TRUE, nhưgsub(pattern = "[\\s]+", ..., perl = TRUE)
MS Berends

30

\slà một nhân vật meta bao gồm tất cả các khoảng trắng. Bạn không cần phải làm cho nó không phân biệt chữ hoa chữ thường - khoảng trắng không có trường hợp.

str.replace(/\s/g, "X")

19

Chúng tôi cũng có thể sử dụng điều này nếu chúng tôi muốn thay đổi tất cả các khoảng trống được nối với một ký tự:

str.replace(/\s+/g,'X');

Xem nó trong hành động ở đây: https://regex101.com/r/d9d53G/1

Giải trình

/ \s+/ g

  • \s+phù hợp với bất kỳ ký tự khoảng trắng (bằng [\r\n\t\f\v ])
  • + Bộ định lượng - Kết hợp giữa một và không giới hạn số lần, càng nhiều lần càng tốt, trả lại khi cần (tham lam)

  • Cờ hoa văn toàn cầu
    • g bổ nghĩa: g thùy. Tất cả các trận đấu (không trở lại sau trận đấu đầu tiên)


4

Nếu bạn dùng

str.replace(/\s/g, "");

nó thay thế tất cả các khoảng trắng. Ví dụ:

var str = "hello my world";
str.replace(/\s/g, "") //the result will be "hellomyworld"

4

Thử cái này:

str.replace(/\s/g, "X")

Điều đó không hiệu quả. \s\n\tphù hợp: bất kỳ ký tự khoảng trắng, theo sau là một dòng mới, theo sau là tab.
Daniel Cassidy

3

Không phải / gi mà là / g

var fname = "My Family File.jpg"
fname = fname.replace(/ /g,"_");
console.log(fname);

cho

"My_Family_File.jpg"

1

Trên thực tế nó đã được làm việc nhưng

hãy thử cái này

lấy giá trị / \ s / g thành một biến chuỗi như

String a = /\s/g;

str = str.replaceAll(a,"X");

bạn đã replaceAllđến từ đâu
Ionel Lupu

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.