从文本中删除所有空白


587
$("#topNav" + $("#breadCrumb2nd").text().replace(" ", "")).addClass("current");

这是我的代码的一部分。我想在获取另一个ID的text属性后向ID添加一个类。问题在于,持有我需要的文本的ID包含字母之间的空格。

我希望删除空白。我已经尝试过TRIM()REPLACE()但这只能部分起作用。该REPLACE()只删除第一个空间。

Answers:


1347

您必须告诉replace()重复正则表达式:

.replace(/ /g,'')

字是指通过重复整个字符串搜索。在此处阅读有关此内容以及JavaScript中可用的其他RegEx修饰符的信息。

如果要匹配所有空格,而不仅仅是文字空间字符,请\s改用:

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

30
Coffeescript会出于某些可怕的原因而抱怨该正则表达式。取而代之的是,我必须继续使用.replace(/\s+/g, '')它,对我来说完全可以。
丹·布拉德伯里

7
如果你想实现像Ruby的string.strip方法,它返回返回首尾的空格去掉字符串的副本,这应该工作: x = " Many spaces before and after " y = x.replace(/(^\s+|\s+$)/g, "")^\s方法的空白字符串的开始,之后\s$手段在空白的结束字符串,|用于/或组中的,g修饰符在上面的注释中进行了解释。要捕获一个或多个空白实例,您还需要+在每一个之后加上量词\s
加勒特·辛普森

298
.replace(/\s+/, "") 

替换第一个空格,其中包括空格,制表符和换行符。

要替换字符串中的所有空格,您需要使用全局模式

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

11
第一个不会删除所有空格(它只会删除第一组空格/换行/制表符),第二个可以。演示:regex101.com/r/wX8rF2/3

4
.replace(/ \ s + / g,'')
mynameistechno 2014年

@mynameistechno +不会添加任何东西,因为我们已经在使用g(global)修饰符
d4nyll 2015年

第一行不起作用,因为它没有从文本中删除尾随空格
UKDataGeek

@ d4nyll可能会使它更有效。
所罗门·乌科

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.