salve a tutti.
tramite questa applicazione js permetto l'utente di formattare il testo con i prompt e nella textarea nella posizione del cursore uscirà il testo formatato racchiuso nei tag.
codice:
<script type="text/javascript">

<!--
function AddToTextarea(TextareaID,TextToAdd,Titolo,TypeText){	
	if(TypeText !=""){
	var L = prompt(Titolo,"");
		if(TypeText != "link"){
			if (L) {
			TextToAdd = '<' + TypeText + '>' + L + '</' + TypeText + '>';
			}
		}	
		else{
		var M = prompt("Inserisci il link","http://");
			if(L){
			TextToAdd= '' + L + '';
			}
			elseif(L != ""){
			TexToAdd= '' + M + '';
			}
		}
	}
						
    var MyTextarea = document.getElementById(TextareaID);
    
    if (document.all)
    {
        MyTextarea.focus();
        var MyRange = document.selection.createRange();
        MyRange.colapse;
        MyRange.text = TextToAdd;
    }
   	 else if (MyTextarea.selectionEnd){
        var MyLength = MyTextarea.textLength;
        var StartSelection = MyTextarea.selectionStart;
        var EndSelection = MyTextarea.selectionEnd;
        MyTextarea.value = MyTextarea.value.substring(0, StartSelection) + TextToAdd + MyTextarea.value.substring(EndSelection, MyLength);
    }
    else{
        MyTextarea.value += TextToAdd;
    }

}
</script>
il problema è se il cursore si ritrova all'interno del tag.
esempio:
in [/b] e io ci inserisco qualcosa per sbaglio mi distrugge il tag con ovvie conseguenze. in questo caso grassetto a tutto spiano.
ora avevo pensato di agire nel javascript ma nn serve perchè un utente esperto può anche scrivere a mano i tag e comunque se il cursore si trova all'interno inavvertitamente lo si può rovinare.
pensavo di affidarmi a php per controllare che i tag siano intanti e cancellare le cose sbagliate
io avevo pensato di fare un preg match di questo tipo
se nel testo trovi per esempio uno strong con caratteri aggiuntivi o addirittura eliminati mi sostituisca il tag in modo corretto.
come la si può scrivere o ho detto una cosa che non si può proprio fare.comunque ci sono approcci più semplici?