Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正则表达式从完整url中删除文件名_Javascript_Regex - Fatal编程技术网

Javascript 正则表达式从完整url中删除文件名

Javascript 正则表达式从完整url中删除文件名,javascript,regex,Javascript,Regex,使用此代码,我将获得执行脚本的完整路径,在本例中为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

使用此代码,我将获得执行脚本的完整路径,在本例中为
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(/[^\/]+$/, '');
但是,与其他一些解决方案相比,它似乎是速度较慢的解决方案:

您可以使用


“正则表达式要从完整url中删除文件名”
,我在这里没有看到任何正则表达式=P@plalx-当你不必使用正则表达式时,你为什么要使用正则表达式!这里提出了很多解决方案:)。我正试着以尽可能快的速度。甚至可以使用
src.split('/').slice(0,-1).join('/')
@adeneo,也许OP想知道它是如何使用正则表达式完成的…,但是我同意展示替代解决方案是很好的;)@user1737909,我在这里创建了一个性能测试这里的性能测试->
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);