risolto e credo anche sia una buona soluzione:
source = source.replace(/<span(.*?)font-weight: bold;(.*?)>(.*?)<\/span>/gi,"<span$1$2>$3</span>");
source = source.replace(/<span(.*?)font-style: italic;(.*?)>(.*?)<\/span>/gi,"<span$1$2>$3</span>");
source = source.replace(/<span(.*?)text-decoration: underline;(.*?)>(.*?)<\/span>/gi,"<span$1$2>$3</span>");
source = source.replace(/<span(.*?)text-decoration: line-through;(.*?)>(.*?)<\/span>/gi,"<span$1$2>[s]$3[/s]</span>");
source = source.replace(/<span(.*?)text-decoration: underline line-through;(.*?)>(.*?)<\/span>/gi,"<span$1$2>[s]$3[/s]</span>");
source = source.replace(/<span(.*?)font-family: (.*?);(.*?)>(.*?)<\/span>/gi,"<span$1$3>[family=$2]$4[/family]</span>");
source = source.replace(/<span(.*?)>(.*?)<\/span>/gi,"$2");
semplicemente se trovo dentro il tag span una determinata parola tipo bold, tolgo la parola bold e metto all'interno del tag span e fuori il testo il tag corrispettivo, per tutti i tag che mi interessano, alla fine restera il tag span senza attributi e lo sostituisco co niente
I colori li ho trattato a parte perche dovevo cambiare il valore da decimale a esadecimale
Ciao e grazie a tutti per l'interessamento