JavaScript:在跨度中的撇号之间包装所有文本

时间:2019-07-10 20:17:03

标签: javascript html

我有一小段文字: "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 个答案:

答案 0 :(得分:1)

您非常接近。您可以在替换字符串中使用$n语法,该语法将对应第n个捕获组。

let x = '"yo" bro "more"';
let y = x.replace(/"(.*?)"/g, '<span>$1</span>');
console.log(y);

mdn