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
다음과 같은 작업을 수행합니다.문자열에서 마지막으로 발생한 문자(음, 문자열)의 인덱스를 찾습니다. 찾지 못하면 -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
솔루션이 아마도 가장 효율적일 것입니다(엔진이 서로 너무 근본적으로 다르기 때문에 JavaScript와 성능에 대해 항상 신중해야 하지만). 하지만 수천 번 반복하지 않는 한, 그것은 중요하지 않으며 코드의 명확성을 위해 노력할 것입니다.
사용해 보십시오.
const url = "files/images/gallery/image.jpg";
console.log(url.split("/").pop());
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));
시도;
varstr = "foo/bar/test.test";vtmp = str.tvmp/);alert(tmp.pop();
줄이 상당히 짧다는 것을 알았을 때, 저는 다음의 라이너를 사용합니다.(백슬래시 탈출이 가능)
// if str is C:\windows\file system\path\picture name.jpg
alert( str.split('\\').pop() );
경고 팝업 표시picture name.jpg
이것은 오래된 스레드일 수도 있지만 우연히 발견했고 잠시 후 훨씬 더 좋은 옵션을 발견했습니다.
var str = "foo/bar/test.html";
alert(str.split('/').pop());
// output will be: test.html
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
OR
var string_after_last_slash = string.substring(start+1);
console.log(string_after_last_slash);//o/p:- var3
질문:
var afterDot = value.substr(value.lastIndexOf('_') + 1);
Javascript:
var myString = 'asd/f/df/xc/asd/test.jpg'
var parts = myString.split('/');
var answer = parts[parts.length - 1];
console.log(answer);
'_' || '/'을(를) 필요에 따라 바꿉니다.
질문에 필요에 따라:
var string1= "foo/bar/test.html";
if(string1.contains("/"))
{
var string_parts = string1.split("/");
var result = string_parts[string_parts.length - 1];
console.log(result);
}
url에 대한 질문('=' 한 번만 발생한 경우 포함):
[http://stackoverflow.com/questions/24156535/how-to-split-a-string-after-a-particular-character-in-jquery ][1]
var string1= "Hello how are =you";
if(string1.contains("="))
{
var string_parts = string1.split("=");
var result = string_parts[string_parts.length - 1];
console.log(result);
}
이것도 사용해 볼 수 있습니다.
var str = 'foo/bar/test.html';
var output = str.split('/');
var lastElement = output[output.length-1];
console.log(lastElement); //test.html
이것이 ~RDAKsh에 도움이 되기를 바랍니다.
언급URL : https://stackoverflow.com/questions/8376525/get-value-of-a-string-after-last-slash-in-javascript
'programing' 카테고리의 다른 글
도커 컨테이너에 AWS 자격 증명을 전달하는 가장 좋은 방법은 무엇입니까? (0) | 2023.08.14 |
---|---|
jQuery를 사용하여 div로 스크롤 (0) | 2023.08.14 |
중간 텍스트의 최대 길이? (0) | 2023.08.14 |
사용자가 Swift로 이미지를 선택할 수 있도록 하는 방법은 무엇입니까? (0) | 2023.08.14 |
mariadb 가장 긴 동시 번호 시퀀스를 찾는 방법 (0) | 2023.08.14 |