2014-10-12 13 views
1

我需要在IE8中使用trim()函數,但它只能在IE9中使用。我如何將它自己添加到IE8?我聽說過勻場或類似的東西,但它是如何工作的?如何將缺少的JavaScript函數添加到IE8中的所有字符串?

我目前正在寫這樣的代碼:

var trim = String.trim || function (str) { 
    return x.replace(/^\s+|\s+$/gm,''); 
} 

但後來我需要trim(str_variable)全部更換str_variable.trim()。我怎麼能寫trim函數並將其添加到字符串?

+0

變化 「變種微調= String.trim ||」到「String.prototype.trim =」。這是安全的,但你的正則表達式是緩慢和破壞... – dandavis 2014-10-12 03:12:15

+0

http://stackoverflow.com/questions/8392035/javascript-add-method-to-string-class – Reeling 2014-10-12 03:13:27

回答

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

但是,我懷疑這是否涵蓋了與本地方法相同的功能。

最好使用polyfill at MDN

if (!String.prototype.trim) { 
    (function(){ 
    // Make sure we trim BOM and NBSP 
    var rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; 
    String.prototype.trim = function() { 
     return this.replace(rtrim, ""); 
    } 
    })(); 
} 
+0

MDN不完美:) – 2014-10-12 03:23:46

+0

@ ŠimeVidasMDN是完美的。總是。 – 2015-09-15 09:59:51

相關問題