У меня есть строка, в которой мне нужно запустить замену.
string = replace('/blogs/1/2/all-blogs/','');
Значения 1, 2 и все блоги могут меняться. Можно ли сделать их подстановочными знаками?
Спасибо заранее,
Привет
У меня есть строка, в которой мне нужно запустить замену.
string = replace('/blogs/1/2/all-blogs/','');
Значения 1, 2 и все блоги могут меняться. Можно ли сделать их подстановочными знаками?
Спасибо заранее,
Привет
Вы можете использовать .* в качестве заполнителя для "нуля или более любого символа здесь" или .+ для "одного или нескольких символов". Я не уверен на 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"
Обратите внимание, что в обоих вышеизложенных случаях будет заменено только первое совпадение. Если вы хотите заменить все совпадения, добавьте g следующим образом:
str = str.replace(/\/blogs\/.+\/.+\/.+\//g, '');
// ^-- here
Вы можете прочитать на JavaScript регулярные выражения в MDC.
js> 'www.google.de/blogs/1/2/all-blogs'.replace(/\/blogs\/[^\/]+\/[^\/]+\/[^\/]+\/?/, '');
www.google.de
Что же касается просто разделения строки на косые черты и просто замены значений?
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'
Попробуйте это
(/.+){4}
в случае необходимости