2011-05-11 87 views

回答

762

這?

str = str.replace(/\s/g, ''); 

var str = '/var/www/site/Brand new document.docx'; 
 

 
document.write(str.replace(/\s/g, ''));


更新:基於this question,這樣:

str = str.replace(/\s+/g, ''); 

是一個更好的解決方案。它會產生相同的結果,但速度更快。

正則表達式

\s是 「空白」 正則表達式,並g是 「全球性」 的標誌,這意味着匹配所有\s(空格)。

+的一個很好的解釋可以找到here。作爲一個方面說明,你可以將單引號之間的內容替換爲任何你想要的,所以你可以用任何其他字符串替換空格。

+0

@Gaurav我已經看了一個類似的答案在SO,我看到'.replace(/ \ s +/g,'')'更經常。那和我的答案有區別嗎? –

+0

在這種情況下是沒有區別的。但+用於至少一次發現。 – Gaurav

+1

它完美無瑕!謝謝 – JLuiz

37
var a = "/var/www/site/Brand new document.docx"; 
alert(a.split(' ').join('')); 
alert(a.replace(/\s/g, "")); 

這樣做的兩種方法!

+1

我喜歡split()和join()。 –

7
var input = '/var/www/site/Brand new document.docx'; 

//remove space 
input = input.replace(/\s/g, ''); 

//make string lower 
input = input.toLowerCase(); 

alert(input); 

Click here for working example

2
var output = '/var/www/site/Brand new document.docx'.replace(/ /g, ""); 
    or 
    var output = '/var/www/site/Brand new document.docx'.replace(/ /gi,""); 

注:雖然您使用 'G' 或 'GI' 去除空間都表現相同。

如果我們在替換函數中使用'g',它將檢查完全匹配。但如果我們使用'gi',它會忽略區分大小寫。

僅供參考click here

3

以下@rsplak回答:實際上,使用split/join方式比使用regexp更快。請參閱性能test case

所以

var result = text.split(' ').join('')

運行速度比

var result = text.replace(/\s+/g, '')

在小文本,這是不相關的,但情況下,當時間是很重要的,如G。在文本分析器中,尤其是在與用戶交互時,這很重要。


在另一方面,\s+處理更多種類的空格字符。其中\n\t,它也匹配\u00a0字符,這就是當使用textDomNode.nodeValue獲取文本時,打開的是 

所以我覺得在這裏可以得出結論如下:如果你只需要更換空間' ',使用分割/結合。如果可以有符號類的不同符號 - 使用replace(/\s+/g, '')

4

你可以嘗試使用這樣的:

input.split(' ').join(''); 
相關問題