내가 좋아하는, (기본적으로 \\
을 사용는 Server.MapPath를 사용하여) C#으로 만든 경로에서 파일 이름을 제거하기 위해 노력하고있어 :Windows에서 파일 이름 바꾸기 '\'경로
C:\\Foo\\Bar\\Baz\\file.js
나의 현재 정규식 RegExr 다소 작동하는 것으로 보이지만, 실제 응용 프로그램에서는 반대 방향으로 작동합니다
\/[^\\]+$
나는 무엇을 놓치고?
내가 좋아하는, (기본적으로 \\
을 사용는 Server.MapPath를 사용하여) C#으로 만든 경로에서 파일 이름을 제거하기 위해 노력하고있어 :Windows에서 파일 이름 바꾸기 '\'경로
C:\\Foo\\Bar\\Baz\\file.js
나의 현재 정규식 RegExr 다소 작동하는 것으로 보이지만, 실제 응용 프로그램에서는 반대 방향으로 작동합니다
\/[^\\]+$
나는 무엇을 놓치고?
당신이 JS에서이 일을하고 있기 때문에 그냥 String.split
작업을한다.
var path = "C:\\Foo\\Bar\\Baz\\file.js";
var separator = "\\";
function getFilenameFromPath(path, separator){
var segmented = path.split(separator);
return segmented[segmented.length-1];
}
console.log(getFilename(path, separator));
은 원래 정규식 잘못 유일한 것은 최고의 \과 손톱이/
/[^\\]+$/
겠습니까 누락되었습니다. 합니다 (@JDwyers에 /g
후행 대답은 그 사용 사례에 대한 중복, 그것은에게 글로벌 경기를하는 것입니다.)
그래서 ...
path.match(/[^\\]+$/); // == "file.js"
건배
왜 정규식을 사용하고 있습니까? Path
클래스에서이 작업을 수행하기 위해 제공하는 함수가있을 때 그것은 과잉이다 :
string dirName = Path.GetDirectoryName(filename);
등의 파일 이름, 확장자, 경로 루트,
phantomjs 파일에서 javascript로 파일 이름을 제거하고 있기 때문에 이전에 할 수 없습니다. –
말은 ... 자바 스크립트에서 파일 이름을 삭제하려고하는 것입니까? 그렇다면이 질문은 C#이 아니라 javascript로 태그되어야합니다. 그렇지 않으면 전 완전히 당신을 좇지 않을 것입니다. –
를 디렉터리를 원하기 때문에 경로를 사용하여 파일 이름을 제거하면 다음과 같이 표시됩니다.
var path = "C:\\Foo\\Bar\\Baz\\file.js";
var separator = "\\"; // make it OS agnostic.
var result="";
function getFilename(path, separator){
var segmented = path.split(separator);
for(var i=0; i<segmented.length-1;i++)
{
result+=segmented[i]+"\\\\";
}
return result;
}
alert(getFilename(path, separator));
질문에 올바르게 태그를 추가하십시오. – ocodo