我有一个字符串/test/file/sometext/public/image
和第二个字符串/test1/file/sometext1/public/image1
。
我希望得到从file
开始到public
结束的子字符串。
所以第一个字符串应该返回file/sometext/public/
,而第二个字符串应该返回file/sometext1/public/
。
在每个字符串中,file
和public
都是静态的。
我将如何在javascript中执行此操作?
基本上我需要这个
str = '/test/file/sometext/public/image';
var str1 = str.replace("file/sometext/public/", "");
但我需要一个通配符,以便某些文本可以替换file
和public
之间的任何文本。希望你明白我的意思。
答案 0 :(得分:1)
您可以使用 split()
将字符串拆分为字符串数组,其中 slice()
会返回部分字符串的浅表副本一个数组到一个新的数组对象,最后是 join()
,将数组的所有元素连接成一个最终的字符串:
var parts = '/test/file/sometext/public/image'.split('/');
console.log( parts.slice(2, 5).join('/') );

答案 1 :(得分:0)
如果所有字符串都遵循相同的文件夹结构,您可以将它们拆分为数组并使用所需的部分重建它,如下所示:
var arr = str = '/test/file/sometext/public/image'.split('/');
var str1 = arr[2] + '/' + arr[3] + '/' + arr[4] + '/';
console.log(str1);

答案 2 :(得分:0)
您可以使用正则表达式执行此操作。
var str = '/test/file/sometext/public/image';
var reg = /file\/[^\/]*\/public/i;
var replace = str.replace(reg, 'something');
console.log('before',str);
console.log('after',replace);