2

使用此代码,我将获得执行脚本的完整路径,在这种情况下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/

任何的想法?

4

5 回答 5

3

我认为您可以将其拆分。

src = src.split('/');
src.pop();
alert(src.join('/'));
于 2013-05-08T22:31:16.437 回答
1

“从完整 url 中删除文件名的正则表达式”

您可以使用以下 regex 替换/字符串末尾的所有字符/[^\/]+$/

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

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

于 2013-05-08T22:31:23.173 回答
1

你可以使用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));
于 2013-05-08T22:32:25.597 回答
1
src.slice(0, src.lastIndexOf('/')) + '/';

小提琴

于 2013-05-08T22:34:58.960 回答
1
alert(src.substring(0,src.lastIndexOf('/')+1);
于 2013-05-08T22:35:25.273 回答