用于删除空格的正则表达式

时间:2013-08-05 19:07:45

标签: javascript regex

我有一些看起来像这样的文字 -

"    tushar is a good      boy     "

使用javascript我想删除字符串中的所有额外空格。

结果字符串应该没有多个空格而只有一个空格。此外,起点和终点不应该有任何空格。所以我的最终输出应该是这样的 -

"tushar is a good boy"

我目前正在使用以下代码 -

str.replace(/(\s\s\s*)/g, ' ')

这显然失败了,因为它没有处理字符串开头和结尾的空格。

7 个答案:

答案 0 :(得分:15)

这可以在一次String#replace电话中完成:

var repl = str.replace(/^\s+|\s+$|\s+(?=\s)/g, "");

// gives: "tushar is a good boy"

答案 1 :(得分:5)

试试这个:

str.replace(/\s+/g, ' ').trim()

如果您没有trim添加此内容。

Trim string in JavaScript?

答案 2 :(得分:5)

这很好用:

function normalizeWS(s) {
    s = s.match(/\S+/g);
    return s ? s.join(' ') : '';
}
  • 修剪前导空格
  • 修剪尾随空格
  • 将制表符,换行符和多个空格规范化为单个常规空间

答案 3 :(得分:3)

由于每个人都抱怨.trim(),您可以使用以下内容:

str.replace(/\s+/g,' ' ).replace(/^\s/,'').replace(/\s$/,'');

JSFiddle

答案 4 :(得分:1)

这个正则表达式可能有助于去除空格

/^\s+|\s+$/g

答案 5 :(得分:-1)

尝试:

str.replace(/^\s+|\s+$/, '')
   .replace(/\s+/, ' ');

答案 6 :(得分:-1)

var str = "    tushar is a good      boy     ";
str = str.replace(/^\s+|\s+$/g,'').replace(/(\s\s\s*)/g, ' ');

首先替换是删除字符串的前导和尾随空格。