Replacing string contains forward slashes in __filename in NodeJs
Replacing string contains forward slashes in __filename in NodeJs
I'm using __filename
variable in NodeJS ES7 and would like to replace file path
__filename
from
c:/web/google-web/tests/selenium/tests/desktop/main/login.js
to
c:/web/google-web/Results/desktop/main/login.log
I tried this code:
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'));
I tried How to globally replace a forward slash in a JavaScript string? too but no luck.
I got an answer after spending a day to due to dealing of special character like slash not when i asked the question. I hope you understand this and stack overview allows to post an answer if we get it after spending lot of efforts, i think it might have taken as different way like i was knowing the answer.
– Jitesh Sojitra
Sep 23 '18 at 18:45
It is false alarm who-so-ever deleted. Any one person/administrator can't delete the answer according to its personal opinion/judgement. I disagree with all these happening in this question, but i didn't say anything. I started this discussion after your questions and hurting individual's question/answer which i had provided genuinely.
– Jitesh Sojitra
Sep 24 '18 at 7:03
I don't understand your opinion about "hurting individual's question/answer", but if your deleted answer below was really the solution, then I suggest: (1) edit it to provide more detail, since it is rather sparse presently, then (2) flag for a moderator to ask for it to be undeleted. [I have deleted some of my comments in this thread to focus on the remaining issue].
– halfer
Sep 24 '18 at 9:16
1 Answer
1
If what you've tried isn't working I can only assume that __filename
isn't what you expect it to be.
__filename
Your first two examples work just fine (the third doesn't switch hyphons back to slashes), and you can verify this by running:
"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
Since your path starts c:/
I'm guessing you're on Windows? If so, you've got the slashes the wrong way round in your replacement.
c:/
If you want something generic to handle that then use .replace(/tests[\/]selenium[\/]tests/,'Results')
.replace(/tests[\/]selenium[\/]tests/,'Results')
Thanks for contributing an answer to Stack Overflow!
But avoid …
To learn more, see our tips on writing great answers.
Required, but never shown
Required, but never shown
By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.
Hi Jitesh. I am a volunteer editor, and I note that your questions are a bit too chatty. We prefer technical writing here, and since readers know you need help, the addition of "please help me" and similar is likely to be interpreted as begging and pleading. I recommend reading this discussion to understand this in greater clarity: How can we encourage (new) authors to ask confident questions?. I have edited your questions before: please view all edits to your questions, so you can become increasingly aware of our shared writing standards.
– halfer
Sep 7 '18 at 8:08