mik*_*eck 1 javascript regex replace
我正在尝试从在 C# 中创建的路径中删除文件名(使用 Server.MapPath,默认情况下使用\\),例如:
C:\\Foo\\Bar\\Baz\\file.js
Run Code Online (Sandbox Code Playgroud)
我当前的正则表达式在RegExr 中看起来有些工作,但在实际应用程序中,它的工作方式正好相反:
\/[^\\]+$
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
既然你是在 JS 中做这个,就做一个String.split操作。
var path = "C:\\Foo\\Bar\\Baz\\file.js";
var separator = "\\";
function getFilenameFromPath(path, separator){
var segmented = path.split(separator);
return segmented[segmented.length-1];
}
console.log(getFilename(path, separator));
Run Code Online (Sandbox Code Playgroud)
顺便说一句,您原来的 RegEx 唯一的错误是领先的 \ 和缺少的 /
/[^\\]+$/
Run Code Online (Sandbox Code Playgroud)
会钉它。(/g@JDwyers 答案的结尾是使其成为全局匹配,这对于您的用例来说是多余的。)
所以...
path.match(/[^\\]+$/); // == "file.js"
Run Code Online (Sandbox Code Playgroud)
干杯