2013-01-22 4 views
18

var t = "\some\route\here"마지막 백 슬래시 뒤의 모든 항목 제거

"\ some \ route"가 필요합니다.

감사합니다.

+0

봐 : http://stackoverflow.com/questions/6764435/jquery-split-after-last-slash –

+2

그것은'jQuery를 함께 수행 할 수 없습니다 : P'. –

+0

[MDN -'String.prototype.lastIndexOf()'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/lastIndexOf) – KyleMit

답변

40

당신은 lastIndexOfsubstr 필요 ...

var t = "\\some\\route\\here"; 
t = t.substr(0, t.lastIndexOf("\\")); 
alert(t); 

또한, 당신은 그들이 특수 문자를 이스케이프에 사용되는 같은 문자열에 \ 문자를 두 배로해야합니다.

업데이트이 이후 정기적으로 다른 사람에 대한 유용한 입증하고, 여기에 명시된 바와 같이

// the original string 
 
var t = "\\some\\route\\here"; 
 

 
// remove everything after the last backslash 
 
var afterWith = t.substr(0, t.lastIndexOf("\\") + 1); 
 

 
// remove everything after & including the last backslash 
 
var afterWithout = t.substr(0, t.lastIndexOf("\\")); 
 

 
// show the results 
 
console.log("before   : " + t); 
 
console.log("after (with \\) : " + afterWith); 
 
console.log("after (without \\) : " + afterWithout);

+0

감사합니다. 어떻게합니까? 더블. 내가 시도한이 t.replace ("\\", "\\\\") did't는 작동하지 않는다. – INgeek

+1

위의 예제와 같이 코드에 문자열 값을 직접 설정할 때만하면된다. 다른 곳 (URL 등)에서 가져 오는 경우 걱정하지 마십시오. – Archer

+0

t.replace (/ \\/g, "\\\\")도 제대로 작동하지 않았습니다. – INgeek

5

... 코드 조각의 예입니다 @ 아처의 대답은, 당신이 두 배로 필요 백 슬래시. regex를 사용하여 원하는 문자열을 얻으십시오.

+0

감사합니다. 백 슬래시를 두 배로 늘리는 방법을 찾을 수 없습니다. – INgeek

+0

문자열 자체 내에서 그렇게해야합니다. JavaScript에서 "\"는 이스케이프 문자이므로 "\ k"(예 :)는 "k"로 해석됩니다. – ic3b3rg

+0

고맙습니다. – INgeek

1

JavaScript를 사용하면 간단하게이 작업을 수행 할 수 있습니다. 마지막 "_"발생 이후 모든 것을 제거하십시오. 여기

var newResult = t.substring(0, t.lastIndexOf("_")); 
+0

isuru, 기존의 답변에 이미 포함되어 있지 않습니까? – KyleMit

+0

@KyleMit 알았어? 그는 이전의 대답을 업데이트했습니다. – isuru

+0

* 더 많은 * 정보를 추가하려면, [2013 년 1 월 22 일] (https://stackoverflow.com/posts/14462451/revisions) 일자도't = t.substr (0, t.lastIndexOf (" \\ ")); '이것은 당신의 답과 동일합니다. – KyleMit

관련 문제