Search code examples
javascriptecmascript-6escapingtemplate-literals

How do I escape a backtick in a JavaScript raw string?


I have a raw string (created with the String.raw method and template literal), which is supposed to contain several backslashes and backticks. Since the backticks are required to be escaped even in a raw string, I use backward slashes to escape them. Although, it does escape the backtick, the backward slash is also displayed along with it:

let rawString = String.raw`
  __    
 /  |   
 \`| |   
  | |   
 _| |_  
|_____| 


`;

console.log(rawString);

  • How do I escape the backtick such that there is no extra backward slash preceding it?

Some Clarifications

  • The string is required to be a raw string.
  • The backticks are necessary. They can't be replaced with single quotes or anything like that.

Solution

  • So, while writing the question, I came up with an idea myself, and to my utmost surprise - it works!


    Instead of using the backward slash for escaping, use ${...} ("placeholder" for string interpolation); like this:

    let rawString = String.raw`
      __    
     /  |   
     ${"`"}| |   
      | |   
     _| |_  
    |_____| 
    
    
    `;
    
    console.log(rawString);