我正在尝试像 Stackoverflow 那样制作我自己的可 Markdown 文本区域。目标是让人们输入 **blah blah**
在文本区域中,并在 div 中输出 <span style="font-weight:bold;">blah blah</span>
.
我在使用 JavaScript 查找和替换为 HTML 的 ** 星号时遇到问题。
这是一个让聚会开始的 jsfiddle:http://jsfiddle.net/trpeters1/2LAL4/14/
这里的 JS 只是为了向您展示我的位置:
$(document.body).on('click', 'button', function() {
var val=$('textarea').val();
var bolded=val.replace(/\**[A-z][0-9]**/gi, '<span style="font-weight:bold;">"'+val+'" </span>');
$('div').html(bolded);
});
和 HTML...
<textarea></textarea>
<div></div><button type="button">Markdownify</button>
如有任何想法,我们将不胜感激!
谢谢, 蒂姆
最佳答案
当星号紧接在星号之前或之后时,其他答案将失败。
这就像 Markdown 一样:
function bold(text){
var bold = /\*\*(.*?)\*\*/gm;
var html = text.replace(bold, '<strong>$1</strong>');
return html;
}
var result = bold('normal**bold**normal **b** n.');
document.getElementById("output").innerHTML = result;
div { color: #aaa; }
strong { color: #000; }
<div id="output"></div>
关于javascript - Markdown 在 javascript 中将双星号转换为粗体文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10168285/