Javascript替换正则表达式通配符

时间:2010-11-19 13:47:46

标签: javascript regex

我有一个字符串,我需要运行替换。

string = replace('/blogs/1/2/all-blogs/','');

值1,2和所有博客都可以更改。是否有可能使它们成为通配符?

提前致谢,

此致

4 个答案:

答案 0 :(得分:17)

您可以使用.*作为“零或更多任何角色”的占位符,或.+代表“此处任何角色中的一个或多个”。我并不是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

答案 1 :(得分:1)

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

答案 2 :(得分: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'

答案 3 :(得分:0)

试试这个

(/.+){4}

视情况转义