使用此代码,我将获得已执行脚本的完整路径,在本例中为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/
有什么想法吗?
答案 0 :(得分:3)
我认为你可以拆分它。
src = src.split('/');
src.pop();
alert(src.join('/'));
答案 1 :(得分:1)
“正则表达式从完整网址中删除文件名”
您可以使用以下正则表达式/
替换字符串末尾不是/[^\/]+$/
的所有字符。
src.replace(/[^\/]+$/, '');
然而,与其他一些解决方案相比,它似乎是一个较慢的解决方案:http://jsperf.com/replace-speed-test
答案 2 :(得分: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));
答案 3 :(得分:1)
src.slice(0, src.lastIndexOf('/')) + '/';
答案 4 :(得分:1)
alert(src.substring(0,src.lastIndexOf('/')+1);