2012-07-31 37 views
0

我做了一些服務器請求,服務器回覆我一個字符串前面有很多空格的字符串。該字符串是USERNAME EXISTJavascript - 殺死字符串前面的空白

我知道如何使用這個:

String.prototype.killWhiteSpace = function() { 
return this.replace(/\s/g, '');}; 

String.prototype.reduceWhiteSpace = function() { 
return this.replace(/\s+/g, ' ');}; 

但首先第一個回答我USERNAMEEXISTS和第二的「USERNAME存在」(在字符串前面有一個空格)。 有什麼方法可以殺死字符串前後的所有空格?

+0

請參閱http://stackoverflow.com/questions/498970/how-do-i-trim-a-string-in-javascript – Musa 2012-07-31 23:23:37

回答

1

使用^匹配字符串的開始和$到它的結束匹配正則表達式:

String.prototype.killWhiteSpace = function() { 
    return this.replace(/^\s*|\s*$/g, ''); 
}; 

通常情況下剝離空白被稱爲trim明,已經在現代瀏覽器本身來實現。所以,你可能想用這個:

String.prototype.trim = String.prototype.trim || 
    function() { 
     return this.replace(/^\s*|\s*$/g, ''); 
    }; 

這將爲trim,如果不存在的話墊片,否則會離開本地實現(這是更快)代替。

0

字符串修整是一個有趣的主題。某些瀏覽器可以比其他瀏覽器更好地優化某些正則表達這裏有一個很好的文章:http://blog.stevenlevithan.com/archives/faster-trim-javascript

我通常使用第一種方法從文章:

String.prototype.killWhiteSpace = function() { 
    return this.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); 
}; 

注意,這篇文章(這個解決方案)側重於性能。這對你來說可能重要,也可能不重要,其他答案肯定會符合這個法案。