2011-07-08 55 views
338

可能重复:
Replace all spaces in a string with '+'从文本中删除所有的空格

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

这是我的代码片段。我想在获得另一个ID的文本属性后向类ID添加一个类。这个问题,是ID持有我需要的文本,包含字母之间的差距。

我想删除空格。我尝试过TRIM()REPLACE(),但这只是部分工作。 REPLACE()只能删除第一个空格。

+0

是的,这没有工作时,我试过了,但是这不会站起来,如果有更多的比几个空格。它是一个代码明智的解决方案。不过谢谢。 –

+2

你应该看看这个问题中表决得分最高的答案...... –

回答

787

你必须告诉更换()重复正则表达式:

.replace(/ /g,'') 

g字符表示重复搜索整个字符串。阅读关于此内容以及JavaScript中可用的其他RegEx修饰符here

如果你想匹配所有空白,而不仅仅是字面上的空格字符,使用\s还有:

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

Coffeescript会抱怨一些神可怕的理由正则表达式。相反,我不得不继续使用'.replace(/ \ s +/g,'')'这对我来说完全没问题。 –

+5

如果你想要实现类似ruby的string.strip方法,返回一个字符串的副本,并删除前后的空白字符,这应该工作: 'x =“之前和之后的很多空格'' 'y = \\ s替换(/(^ \ s + | \ s + $)/ g,“”)' '^ \ s'表示字符串开始后的空格,'\ s $'表示在字符串,'|'用于组中的任一个或者在组中,'g'修饰符在上面的注释中解释。您还需要在每个'\ s'后需要'+'量词,因为您要捕获一个或多个空白实例。 –

+2

如果正则表达式不是你的东西,你也可以使用'string.split('').join('')'。 –

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

应该工作(正则表达式,去除所有空格)

,或者你可以试试这个

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

(全局替换空格)

+45

+1也考虑到了制表符和新行 – uglymunky

+9

第一个不删除所有**空格(它只删除第一个组空格/新行/标签),第二行是OK。演示:http://regex101.com/r/wX8rF2/3 – 2014-08-15 10:23:49

+3

.replace(/ \ s +/g,'') – mynameistechno

相关问题