javascript - 如何将此原始代码放入正确标记?
问题描述
我试图让用户输入一些文本,然后我在它上面运行更漂亮,然后向用户显示格式化的代码。我的小提琴:
<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(/^"(.*)"$/, '$1');
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]*?)"$/, '$1');
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
换行符。
推荐阅读
- php - MySQL 上的多次插入使用准备好的语句问题,只插入了一个结果
- xpath - 如何在 Logstash 中选择 xml 输入日志的特定元素
- haskell - 在 Haskell 中的另一个函数内部调用函数
- python - 如何从具有不完整键或条件的 DynamoDB 中获取项目?
- scheme - 这段代码的每一行发生了什么?
- c# - 使用 Polly 重试拦截器不适用于 Unity
- r - R:“相同”的令人惊讶的行为
- postgresql - 获取错误:尝试使用 golang-migrate 迁移到 postgres 数据库时无法获取锁
- python - 窗口未在外部 url 链接上打开新窗口或选项卡单击
- javascript - 使用 ajax/php 具有文件树视图的单页应用程序