2017-10-23 6 views
0

こんにちは、文字列がC:/ users/Me/AppData/elastic/elastic 1.6のような特定の方法で文字列を分割したいとします。私はsplit()メソッドを使って分割し、最初と最後の分割された文字列を得るためにpop()とshift()を使うことができますが、最後の文字列を除いて分割したいと思います。だから、答えは次のようにする必要があります「C:/ユーザー/ ME /のAppData /弾性」スプリット文字列特定の方法でJavaScriptを使用する

私はこのようにそれをやった、

str.split(str.split("/").pop()).shift() 

Iました。このように置いて、

C:/users/Me/AppData/ 

しかし、私は

C:/users/Me/AppData 
+0

でそれを置き換えますか?あなたはどんな問題に直面していますか? – Lix

+0

もっと重要なことは、[あなたの問題を解決するために今まで何をしていますか?](https://stackoverflow.com/help/mcve)? – chazsolo

+0

"/"で区切られた最後の単語を除いて、JavaScriptの分割文字列が必要です。 –

答えて

2

それはあなたがドロップされるパスの最後の項目をたいと言っているように聞こえる、このようにそれをしたい。そのためには、あなたが使用することができます最後に/の位置を取得する場合は.lastIndexOf()、次に-1でない場合は、.slice()を指定します。あなたの試みと似ていますが、遅くなる場合があり

var str = "C:/users/Me/AppData/elastic/elastic 1.6"; 
 

 
var idx = str.lastIndexOf("/"); 
 
var res = str; 
 

 
if (idx !== -1) { 
 
    res = str.slice(0, idx); 
 
} 
 

 
console.log(res);

またはこのような、:

var str = "C:/users/Me/AppData/elastic/elastic 1.6"; 
 

 
var res = str.split("/"); 
 
res.pop(); 
 
res = res.join("/"); 
 

 
console.log(res);

あなたのオリジナルのソリューションは限り動作しません最後の項目はURLの他の場所には表示されません。それ以外の場合は、最初の分割項目の前の部分のみを取得します。

+0

ありがとう、その完璧に動作します。 –

+0

良い、うれしかったそれは助けた。 – llama

0

したい場合は正規表現:

var str = "C:/users/Me/AppData/elastic/elastic 1.6"; 
str = str.replace(/\/[^\/]*$/, ""); 

式が読み:文字列の終わりまで/から始まる

  1. グラブすべて。
  2. 間には/ notが必要です。
  3. あなたが正確に何を求めている何も
関連する問題