2016-10-26 12 views
-1

我必須明確地使用trim()來處理太多的變量。無論如何,我可以將trim應用於代碼中的所有字符串值,而無需明確調用trim。我們是否可以隱式調整我們在JavaScript中使用的所有變量?

注意: 我出於好奇,問這個問題是否有辦法或可能這樣做。即使我不想在所有場景中應用修剪。但是,是的,我必須使用trim來處理應用程序中使用的所有文字和變量(我有這樣的req)。所以想知道是否有一個可以改變的地方,而不是錯過幾個地方。

+0

沒有得到您的問題 –

+1

我會開始問*爲什麼*您必須修剪那麼多字符串......? – deceze

+2

我嘗試了一些黑魔法,但即使重寫'String.prototype.valueOf()'也不會給出預期的結果(它不適用於文字)。 –

回答

3

不,JavaScript的字符串中沒有任何東西會全局啓用自動空白修剪功能。您必須在必要時/必要時執行此操作,這通常應該只是少數幾個地方(例如,從輸入中讀取數據)。

+3

感謝上帝。 – deceze

+0

我發現downvotes好奇。任何人都在意告訴我爲什麼這不是對這個問題有用的答案? –

-1

這是一個很酷的黑客。不會推薦:

String.prototype.valueOf = function() { 
    return this.trim(); 
}; 

'query' + (new String(' asdf ')); // "queryasdf" 
+2

JavaScript程序中的**大部分字符串都是字符串基元,而不是字符串對象;這不會做任何事情來確保自動裁剪,因此不會節省任何努力與「修剪」。即使使用上面的'valueOf'定義,'var a =「foo」; var b =「bar」; console.log(a + b);'yield'「foo bar」' –

+0

ya ..很酷..會試試這個。但是這項工作是否像FrédéricHamidi所說的那樣是文字? – Priya

+1

不是文字。您無法更改'valueOf'原始值。有理由甚至不要使用它,即使它不用於String對象,就像它不更新length屬性或影響按索引訪問一樣。但這是一個很酷的黑客,它會「自動截斷」字符串 –

相關問題