Как мое регулярное выражение для поиска нескольких пробелов не совпадает с символами новой строки? - PullRequest
2 голосов
/ 13 декабря 2011

Я запускаю это регулярное выражение для события #q keyup, чтобы избежать лишних пробелов в строке.

$('#q').val($('#q').val().replace(/\s+/g,' '));

Проблема в том, что он также удаляет все новые строки. Как я могу удалить лишние пробелы, но сохранить новые строки без изменений?

Ответы [ 2 ]

4 голосов
/ 13 декабря 2011

Проблема в том, что \s представляет все пробелы, включая переводы строки. Если вы просто хотите пробелы, вы можете иметь буквальный пробел:

$('#q').val($('#q').val().replace(/ +/g,' '));

Если вам нужны пробелы и символы табуляции, вместо этого вы можете использовать класс символов:

$('#q').val($('#q').val().replace(/[\t ]+/g,' '));
2 голосов
/ 13 декабря 2011

Ищет \x20+ делает трюк :

$('#q').val($('#q').val().replace(/\x20+/g,' '));

20 - шестнадцатеричный код для пробела. Вы искали все пробельные символы, включая символы новой строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...