2011-06-28 41 views
87

Tôi muốn thay thế tất cả các lần xuất hiện của các ký tự khoảng trống (dấu cách, tab, dòng mới) trong JavaScript.
Làm như thế nào?Thay thế tất cả các ký tự khoảng trắng

tôi đã cố gắng:

str.replace(/ /gi, "X") 
+1

http://www.regular-expressions.info/ –

+1

"X" là gì và tại sao? –

+0

Còn về string.replace ('', "X"); –

Trả lời

200

Bạn muốn \s

Trận một đơn khoảng trắng nhân vật, bao gồm cả không gian, tab, hình thức thức ăn chăn nuôi, thức ăn đường.

Tương đương với

[ \f\n\r\t\v​\u00A0\u1680​\u180e\u2000​\u2001\u2002​\u2003\u2004​\u2005\u2006​\u2007\u2008​\u2009\u200a​\u2028\u2029​\u2028\u2029​\u202f\u205f​\u3000] 

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


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

+1 để ghi nhớ rằng hàm 'replace' không sửa đổi' str', vì vậy bạn phải gán nó trở lại. – FishBasketGordo

+18

bạn không thể cung cấp +1 cho điều đó ... – Juan

+0

Trong một hàm, bạn có thể quay lại str.thay thế, vì vậy bạn không cần phải chỉ định trong phạm vi đó. – nottinhill

19

\s là một nhân vật meta mà bao gồm tất 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 - không gian trắng không có trường hợp.

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

Hãy thử điều này:

str.replace(/\s/gi, "X") 
+0

Điều đó không hiệu quả. '\ s \ n \ t' khớp: bất kỳ ký tự trắng nào, theo sau là một dòng mới, theo sau là tab. –

+0

Tôi đã nhầm lẫn tôi đã sửa chữa nó. – Headshota

+0

'i' sau' g' là gì? – M98

7

Bạn đã thử các \s?

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

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

chỉ cố gắng này.

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

String a = /\s/g; 

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

Chúng tôi cũng có thể sử dụng nếu chúng ta muốn thay đổi tất cả nhiều gia nhập không gian trống với một nhân vật duy nhất:

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

Không/gi nhưng/g

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

cho

"My_Family_File.jpg" 
Các vấn đề liên quan