/ / Come implementare <blockquote> e <code> nella textarea? - javascript, jquery, html, regex

Come implementare <blockquote> e <code> nella textarea? - javascript, jquery, html, regex

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 № 1

Tuttavia 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>");