2011-08-17 73 views
6

Tôi muốn thay thế tất cả occurent của "-", ":" nhân vật và không gian từ một chuỗi xuất hiện trong định dạng này:javascript thay thế ký tự

"YYYY-MM-DD HH:MM:SS" 

cái gì đó như:

var date = this.value.replace(/:-/g, ""); 

Trả lời

7

Bạn đã đóng: "YYYY-MM-DD HH:MM:SS".replace(/:|-/g, "")

+0

nếu tôi muốn không gian quá>? –

+1

'" YYYY-MM-DD HH: MM: SS ".replace (/ \ s |: | -/g," ")'. '|' Có nghĩa là "OR". –

+0

'/: | - |/g'. Bạn chỉ cần một ống khác. Nhưng tôi sẽ đi cho giải pháp của @ Rocket nếu bạn có nhiều nhân vật hơn, bởi vì nó trông tốt hơn –

2

/:-/g có nghĩa là ":" followed by "-". Nếu bạn đặt các ký tự trong [] thì có nghĩa là ":" or "-".

var date = this.value.replace(/[:-]/g, ""); 

Nếu bạn muốn xóa khoảng trắng, hãy thêm \s vào regex.

var date = this.value.replace(/[\s:-]/g, ""); 
1

Các regex bạn muốn là lẽ:

/[\s:-]/g 

Ví dụ về sử dụng:

"YYY-MM-DD HH:MM:SS".replace(/[\s:-]/g, ''); 

[] khối phù hợp với bất kỳ ký tự kiềm chế.

Trong đó, tôi thêm mẫu \s khớp với các ký tự không gian như và tab \t (không chắc chắn nếu bạn muốn tab và dòng mới, vì vậy tôi đã đi với tab và bỏ qua dòng mới).

Có vẻ như bạn đã đoán rằng bạn muốn kết quả phù hợp với hình thu nhỏ g cho phép regex tiếp tục thay thế các kết quả phù hợp.

1

Bạn có thể sử dụng một lớp nhân vật hoặc một | (hoặc):

var date = "YYYY-MM-DD HH:MM:SS".replace(/[:-\s]/g, ''); 

var date = "YYYY-MM-DD HH:MM:SS".replace(/:|-|\s/g, ''); 
Các vấn đề liên quan