我有额外空格的字符串,每次只有一个空格,我只希望它只有一个。
任何? 我试着搜索谷歌,但没有任何对我有用。
由于
答案 0 :(得分:353)
这样的事情:
var s = " a b c ";
console.log(
s.replace(/\s+/g, ' ')
)
答案 1 :(得分:61)
您可以扩充String以将这些行为实现为方法,如:
String.prototype.killWhiteSpace = function() {
return this.replace(/\s/g, '');
};
String.prototype.reduceWhiteSpace = function() {
return this.replace(/\s+/g, ' ');
};
现在,您可以使用以下优雅表单来生成所需的字符串:
"Get rid of my whitespaces.".killWhiteSpace();
"Get rid of my extra whitespaces".reduceWhiteSpace();
答案 2 :(得分:20)
使用带有replace函数的正则表达式可以解决问题:
string.replace(/\s/g, "")
答案 3 :(得分:12)
我认为你是想从字符串的开头和/或结尾去掉空格(而不是删除所有空格?
如果是这种情况,你需要这样的正则表达式:
mystring = mystring.replace(/(^\s+|\s+$)/g,' ');
这将删除字符串开头或结尾的所有空格。如果你只想从末尾修剪空格,那么正则表达式将会是这样的:
mystring = mystring.replace(/\s+$/g,' ');
希望有所帮助。
答案 4 :(得分:12)
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"
它通过 whitespaces 拆分字符串,从数组中移除它们的所有空数组项(超过单个空格的数组),并将所有单词再次连接成一个字符串,它们之间有一个空格。
答案 5 :(得分:8)
jQuery.trim()效果很好。
答案 6 :(得分:7)
我知道我不应该对某个问题进行暗示,但鉴于问题的细节,我通常将其扩展为:
为此,我使用这样的代码(第一个正则表达式的括号只是为了使代码更具可读性...除非你熟悉它们,否则正则表达式会很痛苦):
s = s.replace(/^(\s*)|(\s*)$/g, '').replace(/\s+/g, ' ');
这样做的原因是String-object上的方法返回一个字符串对象,您可以在其上调用另一个方法(就像jQuery和其他一些库一样)。如果要连续在单个对象上执行多个方法,可以使用更紧凑的代码方式。
答案 7 :(得分:4)
var x =“测试测试”.split(“”)。join(“”); 警报(X);
答案 8 :(得分:1)
这个怎么样?
"my test string \t\t with crazy stuff is cool ".replace(/\s{2,9999}|\t/g, ' ')
输出"my test string with crazy stuff is cool "
这个也删除了任何标签
答案 9 :(得分:0)
如果要限制用户在名称中添加空格,只需创建一个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;
}
}
});
答案 10 :(得分:0)
试试这个。
var string = " string 1";
string = string.trim().replace(/\s+/g, ' ');
结果将是
string 1
这里发生的事情是它将首先使用trim()
修剪外部空间,然后使用.replace(/\s+/g, ' ')
修剪内部空间。