newValue = newValue.replace(/[^а-яА-ЯЁё\s\-]/gi, ''); // дефис не был экранирован: он - тоже спецсимвол
newValue = newValue.replace(/^[\s\-]+/g, '');
newValue = newValue.replace(/[\s\-]+$/g, '');
newValue = newValue.replace(/\s{2,}/g, ' '); // Заменялись все символы, а нужно от двух. Заменялось на пустую строку, а надо на пробел
newValue = newValue.replace(/\-{2,}/g, '-'); // И то же самое для дефисов