const string = ' one two three ';
const result = string.replace(/\s+/g, '-');
// one-two-three
// и не важно, сколько было пробелов, переносов и какого они типа
Если надо фильтровать ещё что-то, кроме пробелов и переносов (подчеркивание, дефис, доллар):
const result = string.replace(/[-\s_$]+/g, '-');
Или если слова надо как-то проверять, то:
const words = string.split(/\s+/);
// ['one', 'two', 'three']
// тут можно мат отфильтровать или что-то такое
const title = words.join('-');
// 'one-two-three'