我的正则表达式如何找到多个空格不匹配换行符?

时间:2011-12-13 05:04:07

标签: javascript regex replace

我在#q keyup事件上运行此正则表达式以避免字符串中的额外空格。

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

问题是它还删除了所有新行。如何删除多余的空格但保持新的线条完好无损?

2 个答案:

答案 0 :(得分:4)

问题是\s代表所有空白,包括换行符。如果你只想要空格,你可以有一个文字空间:

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

如果您需要空格和制表符,则可以改为使用字符类:

$('#q').val($('#q').val().replace(/[\t ]+/g,' '));

答案 1 :(得分:2)

正在寻找\x20+ does the trick

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

20是空格字符的十六进制代码。您正在寻找所有空白字符,包括换行符。