2011-07-08 57 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

相關問題