In C# you can use verbatim strings like this:
@"\\server\share\file.txt"
Is there something similar in JavaScript?
- 
                        No, there isn't support for that in JavaScript. And that workaround seems very problematic as you now lose the ability to have forward slashes. I've run into this issue myself when I needed to build an alert message or something from an ASP.NET back end, and stick it in a JavaScript alert on the front end. The issue was that developers could enter anything in the Page.Alert() method. What I did to solve this was as follows: public void Alert(string message) { message = message.Replace("\\", "\\\\") .Replace("\r\n", "\n") .Replace("\n", "\\n") .Replace("\t", "\\t") .Replace("\"", "\\\""); // and now register my JavaScript with this safe string. }PhiLho : It was only an example, well suited to the given question (Windows path). You can replace / by any character.
- 
                        I'll re-iterate what's been said before - verbatim strings aren't possible in javascript. It's actually easy to escape valid escape characters like \n \\ \tetc but the problem comes from escaping non-valid characters due to the way they are handled in the different functions they become incompatible. For example"\a".replace("\a","\\a") // WORKS \a "aa\a".replace("\a", "\\a") // FAILS \aaaAlso if you look at an array of illegal special characters eg ["\a"]the character will jsut look like ana. This makes doing what you want essentially impossible.Hope that at least clears it up for you. 
- 
                        Big kludge of a workaround... <html> <head> <script> function foo() { var string = document.getElementById('foo').innerHTML; alert(string); } window.onload=foo; </script> <style> #foo{ display: none; } </style> </head> <body> Calling foo on page load. <div id="foo">\\server\path\to\file.txt</div> </body> </html>
 
0 comments:
Post a Comment