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, '-'); // И то же самое для дефисов
while (true) {
newUser = prompt('Введите имя и фамилию');
if (!newUser && newUser !== null) {
console.log('Вы не ввели данные!');
continue;
}
if (newUser != null) {
userName = newUser.replace(/\s+/g, ' ').trim().split(' ', 2);
if (userName.length < 2) {
console.log('Введите имя и фамилию');
continue;
}
reg = new User(userName[0], userName[1]);
console.log('есть данные', reg);
}
if (newUser === null) {
console.log('отмена');
break;
}
}
reg2 = new UserList
while(true){
newUser = prompt('Введите имя и фамилию')
if (newUser != null) {
reg = new User(newUser)
reg2.addUser(reg)
}
if (newUser === null) {
reg2.getAllUsers()
break;
}
}
let sum = 0;
let strNumber = 0;
let number = 0;
while (strNumber !== null) {
strNumber = prompt("Введите число:", ""); // Получаем из prompt строку либо число в виде строки, если нажата отмена то вернёт null
number = Number(strNumber); // Приводим строку к числу, если строка не может быть числом то вернёт NaN см. https://learn.javascript.ru/type-conversions
sum += (!isNaN(number)) ? number : 0; // Использую isNaN потому что Number.isNaN не будет работать в IE у isNaN есть особености см (https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/isNaN)
}
if(sum) {
alert(sum);
}