__dirname在正则expression式中不起作用

我想从我需要复制(recursion)的目录中删除__dirname。 我收集有关问题的信息:

console.log(typeof __dirname); // string console.log(__dirname); // c:\test 

我需要从我从程序中得到的string创build正则expression式。 所以我必须使用RegExp(myString) 。 我做了一个现实检查jsfiddle,以确保正确的方式逃脱\是\ / 小提琴 。

我在浏览器中运行代码,它工作。 我在node.js中运行代码,它不起作用。 我试图从__dirname中删除RegExp(__dirname) ,以此达到极致。

如果你有一个stringvar s = __dirname.toString() + "myOtherPath/a.cat" ,你如何从s中删除string的__dirname部分?

你的正则expression式是错误的。 正则expression式用于去除反斜杠。 但是string本身没有反斜杠或斜杠。

 var y = "c:\y"; //"c:y" 

要正确添加反斜杠,你必须

 var y = "c:\\y"; //"c:\y" 

你的例子可以在linux中的分隔符是/的,这不需要转义。 此外,看起来你正在做子stringreplace不是正则expression式replace。 所以只需要replace__dirname即可:

 var y = __dirname; var z = y.replace(__dirname,"").toString();