2010-11-19 49 views

回答

15

您可以使用.*作爲一個佔位符「零個或多個這裏的任何字符」或.+爲「一個或多個任意字符在這裏」。我不是100%肯定,你想要做什麼,但例如:

var str = "/blogs/1/2/all-blogs/"; 
str = str.replace(/\/blogs\/.+\/.+\/.+\//, ''); 
alert(str); // Alerts "", the string is now blank 

但是,如果有更多的之前或之後它:

str = "foo/blogs/1/2/all-blogs/bar"; 
str = str.replace(/\/blogs\/.+\/.+\/.+\//, ''); 
alert(str); // Alerts "foobar" 

Live example

注意在以上兩者中,只有第一個比賽將被替換。如果你想更換所有比賽中,添加一個g這樣的:

str = str.replace(/\/blogs\/.+\/.+\/.+\//g, ''); 
//          ^-- here 

您可以在JavaScript的regular expressions on MDC閱讀起來。

+0

可以嘗試使用選擇的懶惰變種,即'*'和'+'在情況下,有可能是提到以下附加斜線?串。 – 2010-11-19 14:00:41

0

試試這個

(/.+){4} 

逃生適當

+1

更好地使用'[^ ​​/]'而不是'''。 – Gumbo 2010-11-19 13:53:48

+0

@Gumbo會擊中線返回雖然以及可能不是OP想要的。 – Keng 2010-11-19 13:56:14

1
js> 'www.google.de/blogs/1/2/all-blogs'.replace(/\/blogs\/[^\/]+\/[^\/]+\/[^\/]+\/?/, ''); 
www.google.de 
+0

JS是否需要'/'來逃脫? – Keng 2010-11-19 13:57:21

+0

由於'/'是正則表達式的分隔符(不要將它們放在引號中):是 – ThiefMaster 2010-11-19 13:59:13

1

什麼只是在分裂的斜槓字符串,只是更換價值?

var myURL = '/blogs/1/2/all-blogs/', fragments, newURL; 
fragments = myURL.split('/'); 
fragments[1] = 3; 
fragments[2] = 8; 
fragments[3] = 'some-specific-blog'; 
newURL = fragments.join('/'); 

應該返回:?

'/blogs/3/8/some-specific-blog'