문자의 마지막 발생 전에 모든 것을 제거
문자열에 대해 다음 작업을 수행하려고합니다.
- 문자의 마지막 발생을 찾습니다
"/"
. - 그 캐릭터 앞의 모든 것을 제거하십시오.
- 문자열의 나머지를 반환합니다.
좀 더 명확하게하기 위해 다음 문자열이 있다고 가정 해 보겠습니다.
var string = "/Roland/index.php"; // Which is a result of window.location.pathname
이제 추출해야 할 것은 실제 페이지를 제외한 모든 것입니다.
var result = "index.php" // Which is what I need to be returned
물론 이것은 단지 예일뿐입니다. 분명히 다른 페이지를 가질 것이기 때문에 동일한 원칙이 적용됩니다.
누군가가 해결책으로 나를 도울 수 있는지 궁금합니다. 다음 조치를 시도했지만 성공하지 못했습니다.
var location = window.location.pathname;
var result = location.substring(location.lastIndexOf["/"]);
괄호를 괄호로 바꾸면 올바른 아이디어가 있습니다.
var string = "/Roland/index.php";
var result = string.substring(string.lastIndexOf("/") + 1);
다음은 jsfiddle 의 예 이며 여기에 Mozilla Developer Network 의 .lastIndexOf () 메서드에 대한 설명이 있습니다.
개인적으로 정규 표현식을 사용합니다.
var result = string.replace(/^.*\/(.*)$/, "$1");
정규식에 익숙하다면 (그렇지 않다면 :-) 익숙하지 않을 때만 큼 외계인처럼 보이지 않습니다.
선행 ^
은이 정규식이 문자열의 시작 부분에서 일치 항목을 "고정"하도록합니다. 은 \/
하나의 일치 /
문자 ((가) \
을 유지하는 것입니다 /
정규 표현식 파서를 혼동). 그런 다음 에서 문자열의 끝까지 (.*)$
다른 모든 항목을 /
찾습니다. 이니셜 .*
은 /
마지막 문자 앞의 문자를 포함하여 가능한 한 많이 삼킬 것입니다. 대체 텍스트 "$1"
는 "첫 번째로 일치하는 그룹의 내용"을 의미하는 특수한 형식입니다. 이 정규식에는 마지막 .*
(에서 (.*)$
)을 괄호로 묶은 그룹이 있습니다. 그것은 마지막 이후의 모든 것입니다./
, 따라서 전체적인 결과는 전체 문자열이 해당 항목으로 대체된다는 것입니다. ( /
문자 가 없어 패턴이 맞지 않으면 아무 일도 일어나지 않습니다.)
에 배열로 문자열을 분할 /
하고 .pop()
마지막 요소 끕니다. 슬래시가있는 경우 먼저 후행 슬래시를 제거해야합니다.
var locationstring = window.location.pathname;
// replace() the trailing / with nothing, split on the remaining /, and pop off the last one
console.log(locationstring.replace(/\/$/, "").split('/').pop());
/path/stuff/here/
후행이 있는 URL과 같은 /
경우이 경우가 아닌 빈 문자열을 반환해야하는 경우 here
위를 수정 .replace()
하여 호출 체인에서을 제거하십시오 . 후행 슬래시에 관계없이 마지막 구성 요소를 원한다고 가정했지만 잘못 가정했을 수 있습니다.
console.log(locationstring.split('/').pop());
var result = /\/([^\/]*)$/.exec(location)[1];
//"remove-everything-before-the-last-occurrence-of-a-character#10767835"
참고 : location
여기에있다 window.location
, 아닌 var location
.
var string = "/Roland/index.php";
var result = string.substring(0, string.lastIndexOf("/") + 0);
'Programing' 카테고리의 다른 글
올바른 방법으로 JavaScript에서 contextPath를 어떻게 얻습니까? (0) | 2020.12.01 |
---|---|
Python : 목록에서 문자열의 하위 문자열을 확인하는 방법은 무엇입니까? (0) | 2020.12.01 |
Task <>에서 암시 적으로 형식을 변환 할 수 없습니다. (0) | 2020.12.01 |
iOS에서 숫자 키패드가 표시되지 않음 (0) | 2020.12.01 |
완료되면 CSS3 애니메이션 재설정을 방지하는 방법은 무엇입니까? (0) | 2020.12.01 |