2013-03-24 3 views
3

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

Вход:

abc xyz 

test 

Выход:

abc xzy test 

В идеале я хотел бы выход быть:

abc xyz 

test 

Код:

var input = $('textarea#input'); 
var output = $('textarea#output'); 

input.bind('keyup', function() { 
    output.val(input.val().replace(/(\s){2,}/g, ' ')); 
}); 

jsFiddlehttp://jsfiddle.net/rdvR7/3/

Я также хотел бы, чтобы следить, но не понял, как использовать \t.

ответ

4

Вы можете использовать классы символов для замены только пробелов.

output.val(input.val().replace(/[ ]{2,}/g,' ')); 

Это займет только пробелы, а не символы табуляции и символы новой строки. Вы также можете поместить любую комбинацию символов в скобки.

output.val(input.val().replace(/[ \t]{2,}/g,' ')); 

Это будет найти все пробелы и все символы табуляции.

+0

бейте меня к моему ответу. Вот jsFiddle http://jsfiddle.net/rdvR7/6/ – DACrosby

0

Просто замените символ пробела (который представляет себя в регулярных выражениях):

output.val(input.val().replace(/ {2,}/g, ' ')); 
Смежные вопросы