簡體   English   中英

正則表達式從完整的URL中刪除文件名

[英]regular expression to remove the file name from the full url

使用此代碼,我將獲得已執行腳本的完整路徑,在本例中為services.js

JS

var scripts = document.getElementsByTagName("script"),
src = scripts[scripts.length-1].src;

alert(src); 

輸出示例:

file:///C:/Users/fel/Desktop/currencies-gh-pages/js/services.js

但是我想要這樣的輸出:

file:///C:/Users/fel/Desktop/currencies-gh-pages/js/

任何想法?

我想你可以拆分它。

src = src.split('/');
src.pop();
alert(src.join('/'));

“正則表達式從完整的URL中刪除文件名”

您可以使用以下正則表達式/[^\\/]+$/替換字符串末尾/所有字符。

src.replace(/[^\/]+$/, '');

但是,與其他一些解決方案相比,它似乎是較慢的解決方案: http : //jsperf.com/replace-speed-test

您可以使用http://phpjs.org/functions/dirname/

var txt = 'file:///C:/Users/fel/Desktop/currencies-gh-pages/js/services.js';

function dirname (path) {
  // http://kevin.vanzonneveld.net
  // +   original by: Ozh
  // +   improved by: XoraX (http://www.xorax.info)
  // *     example 1: dirname('/etc/passwd');
  // *     returns 1: '/etc'
  // *     example 2: dirname('c:/Temp/x');
  // *     returns 2: 'c:/Temp'
  // *     example 3: dirname('/dir/test/');
  // *     returns 3: '/dir'
  return path.replace(/\\/g, '/').replace(/\/[^\/]*\/?$/, '');
}

alert(dirname(txt));
src.slice(0, src.lastIndexOf('/')) + '/';

小提琴

alert(src.substring(0,src.lastIndexOf('/')+1);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM