如何将此原始代码正确地放入 <pre> 标签?

How do I put this raw code to a <pre> tag properly?

我试图让用户输入一些文本,然后我 运行 更漂亮,然后向用户显示格式化代码。 My fiddle:

<pre id="mypre" style="background-color:grey"></pre>

var val = `"<!DOCTYPE html>\n
<html>
  \n
  <body>
    \n
    <h1>My First Heading</h1>
    \n
    <p>My first paragraph.</p>
    \n\n
  </body>
  \n
</html>
"`;


$(document).ready(function(){
  val = val.replace(/^"(.*)"$/, '');
  val = val.replace(/(?:\r\n|\r|\n)/g, '');
  $("#mypre").text(val);
});

请注意,返回的文本以文字 " 返回,我已尝试替换它们和 \n 字符但无济于事。我希望 pre 标签看起来像这样:

<!DOCTYPE html>
<html>
  <body>
    <h1>My First Heading</h1>
    <p>My first paragraph.</p>
  </body>
</html>

是的,正则表达式很有趣。这应该有效:

var val = `"<!DOCTYPE html>\n
<html>
  \n
  <body>
    \n
    <h1>My First Heading</h1>
    \n
    <p>My first paragraph.</p>
    \n\n
  </body>
  \n
</html>
"`;


$(document).ready(function(){
  val = val.replace(/^"([\s\S]*?)"$/, '');
  val = val.replace(/\n{2,}/g, '');
  $("#mypre").text(val);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<pre id="mypre" style="background-color:grey"></pre>

第一个正则表达式 ([\s\S]*?) 匹配多行的所有内容,\n{2,} 匹配两个或多个 \n 换行符。