【发布时间】:2019-11-20 12:18:40
【问题描述】:
我有一小段文字:
"some text" some more text "even more text"
我想做的是将撇号之间的所有内容都包装在一个跨度容器中,就像 hilight.js 一样。我真的找不到让它工作的方法。
谁能解释一下最理想的方法是什么?
var body = document.querySelector('body');
var code = body.innerHTML;
var code = code.replace(/"(.*?)"/g,"<span>---</span>");
body.innerHTML = code;
span {
color: red;
}
<body>
<p>Corrent result:</p>
"some text" some more text "even more text"
<p>The result would be:</p>
<p><span>some text</span> some more text <span>even more text</span></p>
</body>
【问题讨论】:
-
将
---替换为$1。 -
你能解释一下它是如何工作的吗?
-
我不确定我是否愿意这样做...浏览器会将
$1识别为变量 -
不确定你的意思。此外,请确保您在最初是 HTML 且没有属性的内容上执行此操作。制造脚本注入漏洞或破坏真实世界的 HTML 很容易。那么:你是在 HTML 上还是在文本上这样做?
标签: javascript html