开发者

Javascript replace regex wildcard

I have a string which I need to run a replace.

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

The values 1,开发者_JS百科 2 and all-blogs can change. Is it possible to make them wildcards?

Thanks in advance,

Regards


You can use .* as a placeholder for "zero or more of any character here" or .+ for "one or more of any character here". I'm not 100% sure exactly what you're trying to do, but for instance:

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

But if there's more after or before it:

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

Live example

Note that in both of the above, only the first match will be replaced. If you wanted to replace all matches, add a g like this:

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

You can read up on JavaScript's regular expressions on MDC.


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


What about just splitting the string at slashes and just replacing the values?

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('/');

That should return:

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


Try this

(/.+){4}

escape as appropriate

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜