64

var t = "\some\route\here"

そこから「\some\route」が必要です。

ありがとうございました。

4

3 に答える 3

117

あなたが必要lastIndexOfとし、substr...

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

\また、文字列は特殊文字をエスケープするために使用されるため、文字を2倍にする必要があります。

更新 これは他の人にとって定期的に役立つことが証明されているので、ここにスニペットの例を示します...

// 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);

于 2013-01-22T15:46:54.117 に答える
12

@Archerの回答で述べられているように、バックスラッシュを2倍にする必要があります。正規表現置換を使用して、必要な文字列を取得することをお勧めします。

var t = "\\some\\route\\here";
t = t.replace(/\\[^\\]+$/,"");
alert(t);
于 2013-01-22T15:57:33.007 に答える
10

JavaScriptを使用すると、これを簡単に実現できます。最後の「_」の発生後にすべてを削除します。

var newResult = t.substring(0, t.lastIndexOf("_") );
于 2017-01-06T07:47:45.060 に答える