JavaScript reemplaza todos los caracteres excepto letras y números

str.replace(/[^A-Za-z0-9]/g, "-")
Delightful Dotterel