用JavaScript字符串中的单个空格替换多个空格

Replace multiple whitespaces with single whitespace in JavaScript string

我有带额外空格的字符串,每次有不止一个空格时,我希望只有一个。

有人吗?我试着搜索谷歌,但没用。

谢谢


像这样:

1
2
3
4
5
var s ="  a  b     c ";

console.log(
  s.replace(/\s+/g, ' ')
)


您可以增加字符串,以实现这些行为作为方法,如:

4

现在,您可以使用以下优雅的形式生成所需的字符串:

1
2
"Get rid of my whitespaces.".killWhiteSpace();
"Get rid of my extra        whitespaces".reduceWhiteSpace();


在replace函数中使用正则表达式可以做到:

1
string.replace(/\s/g,"")


这里有一个非regex解决方案(只是为了好玩):

1
2
3
4
5
6
7
8
9
var s = ' a   b   word word. word, wordword word   ';

// with ES5:
s = s.split(' ').filter(function(n){ return n != '' }).join(' ');
console.log(s); //"a b word word. word, wordword word"

// or ES6:
s = s.split(' ').filter(n => n).join(' ');
console.log(s); //"a b word word. word, wordword word"

它按空白分割字符串,从数组中删除所有空的数组项(多于一个空格的项),并将所有单词重新连接成一个字符串,其中有一个空白。


我猜你是想从字符串的开始和/或结束处删除空格(而不是删除所有空格)?

如果是这样的话,你需要一个像这样的正则表达式:

1
mystring = mystring.replace(/(^\s+|\s+$)/g,' ');

这将删除字符串开头或结尾的所有空格。如果只想从结尾处修剪空格,则regex将如下所示:

1
mystring = mystring.replace(/\s+$/g,' ');

希望有帮助。


jquery.trim()工作正常。

http://api.jquery.com/jquery.trim/


我知道我不应该在一个主题上死灵,但是考虑到这个问题的细节,我通常把它扩展到:

  • 我想用一个空格替换字符串中出现的多个空格
  • …还有…我不希望空格出现在字符串的开头或结尾(trim)

为此,我使用类似这样的代码(第一个regexp上的圆括号就是为了使代码更易于阅读…regexps可能是一种痛苦,除非您熟悉它们):

1
s = s.replace(/^(\s*)|(\s*)$/g, '').replace(/\s+/g, ' ');

这样做的原因是,字符串对象上的方法返回一个字符串对象,您可以在该对象上调用另一个方法(就像jquery和其他一些库)。如果您想在一个对象上连续地执行多个方法,则可以使用更紧凑的编码方式。


var x="测试测试测试".split("").join(");警报(X);


这个怎么样?

"my test string \t\t with crazy stuff is cool".replace(/\s{2,9999}|\t/g, ' ')

输出"my test string with crazy stuff is cool"

这个也可以去掉任何标签


试试这个。

1
2
var string ="         string             1";
string = string.trim().replace(/\s+/g, ' ');

结果是

1
string 1

这里所发生的是,它将首先使用trim()修剪外部空间,然后使用.replace(/\s+/g, ' ')修剪内部空间。


如果要限制用户在名称中提供空格,只需创建一个if语句并给出条件。像我一样:

1
2
3
4
5
6
7
8
9
10
$j('#fragment_key').bind({
    keypress: function(e){
        var key = e.keyCode;
    var character = String.fromCharCode(key);
    if(character.match( /[' ']/)) {
        alert("Blank space is not allowed in the Name");
        return false;
        }
    }
});
  • 创建jquery函数。
  • 这是按键事件。
  • 初始化变量。
  • 给出与角色匹配的条件
  • 显示匹配条件的警报消息。