如何在JavaScript原始字符串中转义反引号?

7

我有一个原始字符串(使用String.raw方法和模板字面量创建),其中应包含几个反斜杠和反引号。由于即使在原始字符串中,反引号也需要进行转义,因此我使用反斜杠来转义它们。虽然它确实转义了反引号,但反斜杠也随之显示:

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


`;

console.log(rawString);

  • 如何转义反引号以避免出现额外的反斜杠?

一些澄清

  • 该字符串必须是原始字符串。
  • 反引号是必需的。它们不能用单引号或其他任何字符替换。
2个回答

9

所以,在写问题的时候,我自己想出了一个点子,而且令我非常惊喜-它起作用了!


不要使用反斜杠进行转义,而是使用${...}"占位符")进行字符串插值;像这样:

let rawString = String.raw`
  __    
 /  |   
 ${"`"}| |   
  | |   
 _| |_  
|_____| 


`;

console.log(rawString);


太棒了!一旦你看到它,就显而易见了,但是为能想出这样的解决方案,值得称赞。 - Ray Toal

2

var v='`';
let rawString = String.raw`
      __    
     /  |   
     `+v+`| |
      | |   
     _| |_  
    |_____| 


`;

//From seeing from your idea, you can join it like below:

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


`;

console.log(rawString);


这并不回答问题,因为我在问题中非常明确地说明了原始字符串包含多个反引号。 - Arjun
我建议您删除您的答案或更新它以符合问题。感谢您的尝试帮助! - Arjun
我已经更新了这个,另一个答案会更加简洁,而且那也是你的。 - Jovylle

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接