Este sencillo ejemplo con expresiones regulares te eliminará los caracteres
cualquiera repetidos.
Código:
<input type="text" value="xxxuumba wummba" onblur="mirar(this)" />
<script>
function mirar(obj) {
obj.value=obj.value.replace( /(.)\1*/g, "$1" );
}
</script>
Pero para hacer que los guiones sí y otras cosas no habría que hacer excepciones...