Sto cercando di creare una textarea esattamente come SO textarea quando vuoi scrivere una domanda / risposta. Ora quasi l'ho fatto:
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>
Ma non riesco a creare una buona regex per la sostituzione >
con <blockquote>
e "" "o 4[space]
sostituirlo con <code>
tag. Tuttavia ho scritto una regex per blockquote:
text = text.replace(/>(.*?)(n|$)+/g, "<blockquote>$1</blockquote>");
Ma anche questo… non funziona, quindi qualcuno può aggiustarlo?
risposte:
0 per risposta № 1Tuttavia ho scritto una regex per blockquote:
text = text.replace(/>(.*?)(n|$)+/g, "<blockquote>$1</blockquote>");
Ma anche questo… non funziona, quindi qualcuno può aggiustarlo?
Sicuramente non vuoi sostituire >
nel mezzo di una riga, quindi usa il carattere di confine ^
insieme alla bandiera multilinea m
(corrispondente all'inizio dell'input e anche immediatamente dopo un'interruzione di riga):
text = text.replace(/^>(.*?)(n|$)+/gm, "<blockquote>$1</blockquote>");