我在NodeJS ES7中使用__filename
变量,并希望替换文件路径
来自
c:/web/google-web/tests/selenium/tests/desktop/main/login.js
到
c:/web/google-web/Results/desktop/main/login.log
我尝试了以下代码:
console.log(__filename.replace("tests/selenium/tests", "Results").replace('.js','.log'));
console.log(__filename.replace("tests\/selenium\/tests", "Results").replace('.js','.log'));
console.log(__filename.replace(/\//g, "-").replace("tests-selenium-tests", "Results").replace('.js','.log'));
我也尝试过How to globally replace a forward slash in a JavaScript string?,但是没有运气。
答案 0 :(得分:0)
如果您尝试的内容不起作用,我只能假设__filename
不是您期望的值。
您的前两个示例工作正常(第三个示例不会将连音符切换回斜杠),您可以通过运行以下命令进行验证:
"c:/web/google-web/tests/selenium/tests/desktop/main/login.js".replace("tests/selenium/tests", "Results").replace('.js','.log') === "c:/web/google-web/Results/desktop/main/lfghogin.log"; // true
由于您的路径开始c:/
,我猜您在Windows上?如果是这样,那么替换时的斜线将是错误的。
如果您想处理一些通用的东西,请使用.replace(/tests[\\/]selenium[\\/]tests/,'Results')