2016-10-11 2 views
0

/test/file/sometext/public/image과 두 번째 문자열 /test1/file/sometext1/public/image1과 같은 문자열이 있습니다.자바 스크립트에서 와일드 카드를 사용하여 문자열에서 부분 문자열 가져 오기

file에서 시작하여 public으로 끝나는 부분 문자열을 가져 오려고합니다.

따라서 첫 번째 문자열은 file/sometext/public/을 반환하고 두 번째 문자열에서는 file/sometext1/public/을 반환해야합니다.

모든 문자열에서이 filepublic은 정적입니다.

어떻게 이것을 자바 스크립트로 할 수 있습니까?

기본적으로 나는이

str = '/test/file/sometext/public/image'; 
var str1 = str.replace("file/sometext/public/", ""); 

필요하지만 sometext 텍스트가 filepublic 사이에 오는 어떤을 대체 할 수 있도록 내가 여기에 와일드 카드가 필요합니다. 당신이 내 요점을 얻길 바랍니다. 모든 문자열이 동일한 폴더 구조를 따르는 경우

+0

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions – Shilly

+0

더 큰 유연성을 위해 항상 경우, 정규 표현식, 그리고 캡처 그룹을 사용하면 앞으로 귀하의 요구 사항을 연장 할 수 있습니다. –

답변

0

당신은이 작업을 수행 할 수 있습니다 사용하여 정규식.

+0

이 경우 간단하지 않고 똑같은 일을하지 않겠습니까 ?? 'file \ /.* \/public/i'? – Cristy

0

이 같은 배열로에서 분리하고 필요한 부품을 다시 할 수 있습니다

var arr = str = '/test/file/sometext/public/image'.split('/'); 
 
var str1 = arr[2] + '/' + arr[3] + '/' + arr[4] + '/'; 
 
console.log(str1);

1

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);

당신은 split()slice() 새로운 배열 객체에 배열의 일부의 단순 복사본을 반환와 함께, 문자열의 배열로 문자열을 분할하는 데 사용할 수있는 마지막으로 join()을 사용하여 배열의 모든 요소를 ​​최종 문자열로 결합합니다.

var parts = '/test/file/sometext/public/image'.split('/'); 
 

 
console.log(parts.slice(2, 5).join('/'));

관련 문제