Используйте модификатор g в своем регулярном выражении, чтобы сопоставить и заменить глобально:
/\s\s+/g
В противном случае будет заменен только первый матч.
Кстати, начиная с jQuery 1.4 и выше, вы также можете предоставить val
функцию , которая выполняет замену:
$(this).val(function(index, value) {
return value.replace(/\s\s+/g, ' ');
});
Это сэкономит вам второй звонок $(this).val
.