替换字符串在NodeJs的__filename中包含正斜杠

时间:2018-09-04 18:27:59

标签: node.js

我在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?,但是没有运气。

1 个答案:

答案 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')