[javascript] JavaScript에서 슬래시 뒤의 문자열 값 가져 오기

나는 이미 한 시간 넘게 노력하고 있으며 그것을 수행하는 올바른 방법을 알아낼 수 없습니다.

다음과 같은 것이 있습니다. foo/bar/test.html

마지막으로 모든 것을 추출하기 위해 jQuery를 사용하고 싶습니다 /. 위의 예에서 출력은 test.html.

substr및을 사용하여 수행 할 수 있다고 생각 indexOf()하지만 작동하는 솔루션을 찾을 수 없습니다.



답변

최소한 세 가지 방법 :

정규식 :

var result = /[^/]*$/.exec("foo/bar/test.html")[0];

[^/]*문자열 ( $) 의 끝에 “슬래시가 포함되지 않은 일련의 문자를 잡아라”( ) 라고 표시 됩니다. 그런 다음 인덱싱하여 반환 된 일치 개체에서 일치하는 문자를 가져옵니다 ( [0]); 일치 개체에서 첫 번째 항목은 일치하는 전체 문자열입니다. 캡처 그룹이 필요하지 않습니다.

라이브 예

lastIndexOf및 사용 substring:

var str = "foo/bar/test.html";
var n = str.lastIndexOf('/');
var result = str.substring(n + 1);

lastIndexOf소리처럼 들리는 일을합니다. 문자열 에서 마지막으로 나타나는 문자 (well, string) 의 인덱스를 찾아 찾지 못하면 -1을 반환합니다. 10 번 중 9 번은 반환 값 ( if (n !== -1)) 을 확인하고 싶을 것입니다 .하지만 위의 경우 1을 추가하고 하위 문자열을 호출하기 때문에 str.substring(0)문자열을 반환하는 작업 을 끝낼 것 입니다.

사용 Array#split

Sudhir와 Tom Walters는 여기여기 에서이 내용을 다룹니다 .

var parts = "foo/bar/test.html".split("/");
var result = parts[parts.length - 1]; // Or parts.pop();

split 주어진 구분 기호를 사용하여 문자열을 분할하여 배열을 반환합니다.

lastIndexOf/ substring솔루션입니다 아마 (하나는 항상 엔진이 서로 너무 급격하게 변화하기 때문에, 자바 스크립트 및 성능에 대해 아무 말도 조심해야하지만) 가장 효율적인,하지만 당신은 루프에서 시간의 수천을 수행하지 않는 한, 그것은 아무튼 중요하지 않으며 코드의 명확성을 위해 노력할 것입니다.


답변

jQuery는 필요하지 않으며이를 수행하는 방법은 여러 가지가 있습니다. 예를 들면 다음과 같습니다.

var parts = myString.split('/');
var answer = parts[parts.length - 1];

myString에 문자열이 포함됩니다.


답변

var str = "foo/bar/test.html";
var lastSlash = str.lastIndexOf("/");
alert(str.substring(lastSlash+1));


답변

시험;

var str = "foo / bar / test.html";
var tmp = str.split ( "/");
alert (tmp.pop ());


답변

문자열이 합리적으로 짧다는 것을 알면 다음 라이너를 사용합니다 … (백 슬래시를 피하는 것을 잊지 마십시오)

// if str is C:\windows\file system\path\picture name.jpg
alert( str.split('\\').pop() );

경고 팝업 picture name.jpg


답변

String path ="AnyDirectory/subFolder/last.htm";
int pos = path.lastIndexOf("/") + 1;

path.substring(pos, path.length()-pos) ;

이제 경로 문자열에 last.htm 이 있습니다 .


답변

가벼운 무게

string.substring(start,end)

어디

start = Required. 추출을 시작할 위치입니다. 첫 번째 문자는 인덱스 0`에 있습니다.

end = Optional. 추출을 종료 할 위치 (포함하지 않음)입니다. 생략하면 나머지 문자열을 추출합니다.

    var string = "var1/var2/var3";

    start   = string.lastIndexOf('/');  //console.log(start); o/p:- 9
    end     = string.length;            //console.log(end);   o/p:- 14

    var string_before_last_slash = string.substring(0, start);
    console.log(string_before_last_slash);//o/p:- var1/var2

    var string_after_last_slash = string.substring(start+1, end);
    console.log(string_after_last_slash);//o/p:- var3

또는

    var string_after_last_slash = string.substring(start+1);
    console.log(string_after_last_slash);//o/p:- var3