__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();