codice:
function urlung() {
miotesto = document.getElementById("testo").value;
//miotesto = miotesto.toString();
miotesto = miotesto.replace(/(\].{5}).+(.{3}\[\/url\])/gi, "$1...$2");
document.getElementById("prova").innerHTML = miotesto;
}
Ho usato 5 caratteri prima dei puntini e 3 dopo (ma puoi cambiarli).
All'interno ho usato .+ , nel senso che non puo` essere zero caratteri: deve essere almeno uno (oltre ai 5 e 3)
Naturalmente se la stringa e` piu' corta di 5+1+3 caratteri non viene sostituita.
Se dovessi farlo io, metterei dentro le tonde tutta la quadra della stringa in input:
/(\[url\s?=\s?([\"\'])\s?[\w\/\:\.]+\2\].{5}).+(.{3}\[\/url\])/gi
Il \2 sta per quanto contenuto nella seconda parentesi (in questo caso " o ')
Nota che c'e` un \ seguito da ' : il forum taglia qualcosa, quindi fai un "quote" prima del copia-incolla.