Я намагаюся створити textarea точно так, як SO textarea, коли ви хочете написати питання / відповідь. Зараз майже я це зробив:
function generate(text) {
text = text.replace(/**(.*?)**/g, "<b>$1</b>");
text = text.replace(/__(.*?)__/g, "<u>$1</u>");
text = text.replace(/*(.*?)*/g, "<i>$1</i>");
text = text.replace(/--(.*?)--/g, "<del>$1</del>");
text = text.replace(/`(.*?)`/g, "<code>$1</code>");
document.getElementById("out").innerHTML = text
}
<textarea id="Q&A" oninput="generate(this.value)" name="txtarea" rows="4" cols="50"></textarea>
<div id="out"></div>
Але я не можу створити хороший регулярний вираз для заміни >
з <blockquote>
і або "` ", або 4[space]
замінити <code>
теги. Однак я написав регулярний вираз для блокчету:
text = text.replace(/>(.*?)(n|$)+/g, "<blockquote>$1</blockquote>");
Але це також не працює. Отже, чи може хтось це виправити?
Відповіді:
0 для відповіді № 1Однак я написав регулярний вираз для блокчету:
text = text.replace(/>(.*?)(n|$)+/g, "<blockquote>$1</blockquote>");
Але це також не працює. Отже, чи може хтось це виправити?
Ви точно не хочете замінити >
посередині рядка, тому використовуйте граничний символ ^
разом із багаторядковим прапором m
(відповідність початку введення даних, а також відразу після розриву рядка):
text = text.replace(/^>(.*?)(n|$)+/gm, "<blockquote>$1</blockquote>");