用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()运作良好。
这是一个非正则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, ' ')
修剪内部空间。