Проблема в том, что \s
представляет все пробелы, включая переводы строки. Если вы просто хотите пробелы, вы можете иметь буквальный пробел:
$('#q').val($('#q').val().replace(/ +/g,' '));
Если вам нужны пробелы и символы табуляции, вместо этого вы можете использовать класс символов:
$('#q').val($('#q').val().replace(/[\t ]+/g,' '));