Bạn có thể sử dụng .*
để thay thế cho "zero hoặc nhiều hơn của bất kỳ nhân vật ở đây" hoặc .+
cho "một hoặc nhiều của bất kỳ nhân vật ở đây". Tôi không chắc chắn 100% chính xác những gì bạn đang cố gắng để làm, nhưng ví dụ:
var str = "/blogs/1/2/all-blogs/";
str = str.replace(/\/blogs\/.+\/.+\/.+\//, '');
alert(str); // Alerts "", the string is now blank
Nhưng nếu có nhiều hơn sau khi hoặc trước khi nó:
str = "foo/blogs/1/2/all-blogs/bar";
str = str.replace(/\/blogs\/.+\/.+\/.+\//, '');
alert(str); // Alerts "foobar"
Live example
Lưu ý rằng ở cả hai bên trên, chỉ có kết quả trùng khớp đầu tiên mới được thay thế. Nếu bạn muốn thay thế tất cả trận đấu, thêm một g
như thế này:
str = str.replace(/\/blogs\/.+\/.+\/.+\//g, '');
// ^-- here
Bạn có thể đọc lên trên của JavaScript regular expressions on MDC.
Nguồn
2010-11-19 13:49:58
Có thể thử bằng cách sử dụng biến thể lười biếng của bộ chọn, cụ thể là '*' và '+' trong trường hợp có thể có dấu gạch chéo bổ sung sau đây đề cập.? chuỗi. –