我有额外的空格字符字符串。每次有一个以上的空白,我希望它是只有一个。我如何使用JavaScript做到这一点?
当前回答
使用带有replace函数的正则表达式可以做到这一点:
string.replace(/\s/g, "")
其他回答
试试这个。
var string = " string 1";
string = string.trim().replace(/\s+/g, ' ');
结果将是
string 1
这里发生的事情是,它将首先使用trim()修剪外部空间,然后使用.replace(/\s+/g, ' ')修剪内部空间。
我知道我不应该在一个问题上使用巫术,但考虑到问题的细节,我通常会将其扩展为:
我想用一个空格替换字符串中多次出现的空白 …和…我不希望在字符串的开头或结尾出现空格(trim)
为此,我使用了如下代码(第一个regexp上的括号只是为了使代码更具可读性……除非你熟悉regexp,否则它会让你很痛苦):
s = s.replace(/^(\s*)|(\s*)$/g, '').replace(/\s+/g, ' ');
这样做的原因是string -object上的方法返回一个字符串对象,你可以在这个对象上调用另一个方法(就像jQuery和其他一些库一样)。如果你想在一个对象上连续执行多个方法,这是一种更紧凑的编码方式。
你可以扩充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();
这个怎么样?
“我的测试字符串\t\t与疯狂的东西很酷”。替换(/\s{2,9999}|\t/g, ' ')
输出"my test string with crazy stuff is cool "
这个也可以去掉任何标签
就像这样:
Var s = " a b c "; console.log ( s.replace(/\s+/g, ' ') )
推荐文章
- 很好的初学者教程socket.io?
- HtmlSpecialChars在JavaScript中等价于什么?
- 如何删除表中特定列的第一个字符?
- React: 'Redirect'没有从' React -router-dom'中导出
- 如何在React中使用钩子强制组件重新渲染?
- 我如何使用Jest模拟JavaScript的“窗口”对象?
- 我应该如何从字符串中删除所有的前导空格?- - - - - -斯威夫特
- 我如何等待一个承诺完成之前返回一个函数的变量?
- 在JavaScript中根据键值查找和删除数组中的对象
- 使嵌套JavaScript对象平放/不平放的最快方法
- 如何以及为什么'a'['toUpperCase']()在JavaScript工作?
- 有Grunt生成index.html不同的设置
- 文档之间的区别。addEventListener和window。addEventListener?
- 如何检查动态附加的事件监听器是否存在?
- 将整数转换为字符串,以逗号表示千