3

现在我的代码能够删除额外的空格,但它似乎与新行混淆了。如果输入中有多个换行符,它将删除所有换行符。例如:

输入:

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, ' '));
});

jsFiddle http://jsfiddle.net/rdvR7/3/

我也想保持关注,但还没有弄清楚如何使用\t.

4

2 回答 2

4

您可以使用字符类仅替换空格。

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

这只会找到空格,而不是制表符和换行符。您还可以在括号内放置任意字符组合

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

这将找到所有空格和所有制表符。

于 2013-03-24T04:06:57.633 回答
0

只需替换空格字符(在正则表达式中表示自身):

output.val(input.val().replace(/ {2,}/g, ' '));
于 2013-03-24T04:17:27.500 回答