我在#q keyup事件上运行此正则表达式以避免字符串中的额外空格。
$('#q').val($('#q').val().replace(/\s+/g,' '));
问题是它还删除了所有新行。如何删除多余的空格但保持新的线条完好无损?
答案 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是空格字符的十六进制代码。您正在寻找所有空白字符,包括换行符。