我正在尝试复制一些“ markdown-行为”。我正在尝试向JS提供一些文本,例如,像这样的字符串:
"This is some very very fancy `code example` to try out yourself!"
我想用`
替换开头的<div class="code">
,并用`
替换终止的"</div>"
,以突出显示某些内容。
我已经尝试过使用.replace()
来执行此操作,但是如果没有包含终止符`
之后的文本,就无法使其正常工作。
我在这里做错了什么吗?除了通过char手动遍历String char之外,还有其他更优雅的解决方案吗?
非常感谢 Pasu-
答案 0 :(得分:3)
尝试一下:
var x = "Hello `code` World!".replace(/`([^`]+)`/g, "<div class='code'>$1</div>");
console.log(x);
答案 1 :(得分:2)
您可以尝试使用正则表达式替换它。
var str = 'This is some very very fancy `code example` to try out yourself!';
document.body.innerHTML += str.replace(/`(.*)`/, '<div class="code">$1</div>')
.code {
color: red;
}
(.*)
的意思是:任何字符一次或多次。
$1
的意思是:第一组的内容(在()
内)
或者,如果您要更换1次以上,可以尝试一下。
var str = 'This is some `code example 1` and very very fancy `code example 2` to try out yourself!';
document.body.innerHTML += str.replace(/`(.*?)`/g, '<div class="code">$1</div>')
.code {
color: red;
}
答案 2 :(得分:0)
您可以使用此调用将something
替换为<div class="code">something</div>
:
someString.replace(/`([^`]*)`/, (match, p1) => `<div class="code">${p1}</div>`);