eve*_*ve 187 javascript string trim
我有额外的空格字符串,每次只有一个空格我想它只有一个.
任何人?我试着搜索谷歌,但没有任何对我有用.
谢谢
bjo*_*rnd 360
像这样的东西:
var s = " a b c ";
console.log(
s.replace(/\s+/g, ' ')
)Run Code Online (Sandbox Code Playgroud)
小智 61
您可以扩充String以将这些行为实现为方法,如:
String.prototype.killWhiteSpace = function() {
return this.replace(/\s/g, '');
};
String.prototype.reduceWhiteSpace = function() {
return this.replace(/\s+/g, ' ');
};
Run Code Online (Sandbox Code Playgroud)
现在,您可以使用以下优雅表单生成所需的字符串:
"Get rid of my whitespaces.".killWhiteSpace();
"Get rid of my extra whitespaces".reduceWhiteSpace();
Run Code Online (Sandbox Code Playgroud)
Rog*_*raj 20
使用带有replace函数的正则表达式可以解决问题:
string.replace(/\s/g, "")
Run Code Online (Sandbox Code Playgroud)
vsy*_*ync 13
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"Run Code Online (Sandbox Code Playgroud)
它通过它的空格分割字符串,将它们全部从数组中删除,然后再次连接所有单词,它们之间只有一个空格.
Spu*_*ley 12
我认为你想要从字符串的开头和/或结尾去除空格(而不是删除所有空格?
如果是这种情况,你需要这样的正则表达式:
mystring = mystring.replace(/(^\s+|\s+$)/g,' ');
Run Code Online (Sandbox Code Playgroud)
这将从字符串的开头或结尾删除所有空格.如果你只想从末尾修剪空格,那么正则表达式将是这样的:
mystring = mystring.replace(/\s+$/g,' ');
Run Code Online (Sandbox Code Playgroud)
希望有所帮助.
jQuery.trim()效果很好.
http://api.jquery.com/jQuery.trim/
小智 6
我知道我不应该对某个主题进行暗示,但考虑到问题的细节,我通常将其扩展为:
为此,我使用这样的代码(第一个正则表达式中的括号只是为了使代码更具可读性...除非你熟悉它们,否则正则表达式会很痛苦):
s = s.replace(/^(\s*)|(\s*)$/g, '').replace(/\s+/g, ' ');
Run Code Online (Sandbox Code Playgroud)
这样做的原因是String-object上的方法返回一个字符串对象,您可以在其上调用另一个方法(就像jQuery和其他一些库一样).如果要连续在单个对象上执行多个方法,则需要更加紧凑的代码方式.
| 归档时间: |
|
| 查看次数: |
185356 次 |
| 最近记录: |