用JavaScriptstring中的单个空白replace多个空格

我有多余的空白string,每次只有一个空白我想它只有一个。

任何人? 我试图search谷歌,但没有为我工作。

谢谢

像这样的东西:

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

您可以扩充string来实现这些行为作为方法,如下所示:

 String.prototype.killWhiteSpace = function() { return this.replace(/\s/g, ''); }; String.prototype.reduceWhiteSpace = function() { return this.replace(/\s+/g, ' '); }; 

现在,您可以使用下面的优雅forms来生成所需的string:

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

使用replace函数的正则expression式的窍门:

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

我认为你正在寻找从string的开始和/或结束去掉空格(而不是删除所有空格?

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

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

这将从string的开头或结尾删除所有空格。 如果你只想从最后修剪空格,那么正则expression式看起来像这样:

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

希望有所帮助。

jQuery.trim()运作良好。

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

这是一个非正则expression式的解决scheme(只是为了好玩):

 var s = ' ab word word. word, wordword word '; // with ES5: s = s.split(' ').filter(function(n){ return n != '' }).join(' '); console.log(s); // "ab word word. word, wordword word" // or ES6: s = s.split(' ').filter(n => n).join(' '); console.log(s); // "ab word word. word, wordword word" 

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

  • 我想用一个空格来replacestring内的多个空白字符
  • …和…我不希望空格在string的开头或结尾(trim)

为此,我使用这样的代码(第一个正则expression式中的括号只是为了使代码更易读… regexps可能是一个痛苦,除非你熟悉它们):

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

这个工作的原因是,String对象上的方法返回一个string对象,你可以在其中调用另一个方法(就像jQuery和其他一些库)。 如果要连续执行单个对象上的多个方法,则需要更简洁的代码方式。

var x =“Test Test Test”.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 "

这个也摆脱了任何标签

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

 $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; } } }); 
  • 创build一个JQuery函数。
  • 这是重点新闻事件。
  • 初始化一个variables。
  • 给条件匹配字符
  • 显示您的匹配条件的警报消息。

尝试这个。

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

结果将是

 string 1 

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