2017-04-26 19 views
2

URLから拡張子を除いたファイル名だけを取得する必要があります。URLとストリップファイル拡張子からファイル名を取得

はここに問題の私のURL:それは "ソロ・pack.html" を返すとほぼそこに私を取得

function() { 
var value={{Page Path}}.split("/"); 
return value.reverse()[0]; 
} 

を: https://www.mealenders.com/shop/index.php/shop/solo-pack.html

ここで私が試したものです。これのために ".html"を取り除くために何をする必要がありますか?

ありがとうございます。

答えて

3

次使用してJavaScriptを行うことができます。 Popは文字列である最後の要素を返します。そして、replace関数を使用すると、末尾に.htmlのないファイル名だけを取得できます。

function getFilename() { 
    return {{ Page Path }}.split('/').pop().replace('.html', ''); 
} 

は、私は{{ページのパス}}おそらくいくつかのテンプレート言語であることがわかりますが、あなたは現在のURLを取得し、ようにファイル名を取得するには、上記のスクリプトを修正することができます。

function getFilename() { 
    return window.location.href.split('/').pop().replace('.html', ''); 
} 

さらに、次のようにファイル拡張子を処理するように動的にすることができます。ファイル名の先頭からピリオドの位置まで、indexOf、次にsub stringを使用して期間のインデックスを取得する必要があります。あなたが任意の拡張子を取り除くために必要がある場合は

function getFilename() { 
    var filename = window.location.href.split('/').pop(); 
    return filename.substr(0, filename.lastIndexOf('.'); 
} 
+0

その2番目のオプションは完全に機能しました。ページパスは、私が取り組んでいるサイトのGTMの既存の変数です。ありがとう、トン。 –

+0

@KevinPhillips問題はありませんが、html以外のファイルを扱う場合は、3番目のオプションをチェックしてください。あなたの質問に答える気がしたら、私の答えに合格とマークしてください。ありがとうございました! – kyle

0

function getFileName(url) { 
 
    return url.split("/").pop().split(".")[0]; 
 
} 
 
var url = "https://www.mealenders.com/shop/index.php/shop/solo-pack.html"; 
 
console.log(getFileName(url));

0
var sFilename = "solo-pack.html"; 
var iIndexOfPeriod = sFilename.indexOf("."); 
var sFilenameWithoutExtension = sFilename.substring(0, iIndexOfPeriod); 
+0

ファイル名に '.'がない場合はどうなりますか? –

+0

この場合、拡張子はありません。 –

0

、あなたは正規表現で.replace()を使用することができます。

var url = "https://www.mealenders.com/shop/index.php/shop/solo-pack.html"; 
 

 
function getFilename (path) { 
 
    return path.toString().split('/').pop().replace(/\.\w+$/, ''); 
 
} 
 

 
console.log(getFilename(url));

例変動試験/ index.htmlのためのこの意志indexに、index.php.defaultindex.phpに、さらにtest.name.with.dots.txt->test.name.with.dots

0
function() { 
var value={{Page Path}}.split("/"); 
var fileName= value.reverse()[0].split('.')[0]; 
return fileName; 
} 
関連する問題