ie下無法解析trim

2021-07-12 06:44:35 字數 2539 閱讀 8952

在ie 7 8瀏覽器中,如果使用trim()屬性去除空格的話,則會導致報錯。

因此解決這個問題有如下方案:

var aa = $("#id").val().trim()   --- 在ie中無法解析trim() 方法

解決辦法:

[   var aa = $.trim($("#id").val());  ] 這個不好用,還是用下面介紹的吧,第乙個已經過測試。

實現1   **如下:

string.prototype.trim = function ()
看起來不怎麼樣,動用了兩次正則替換,實際速度很是驚人,主要得益於瀏覽器的內部優化。乙個著名的例子字串拼接,直接相加比用array做成的stringbuffer還快。base2類庫施用這種實現。

實現2    **如下:

string.prototype.trim = function ()
和實現1很相似,但稍慢一點,主要原因是它最先是假設至少存在乙個空白符。prototype.js施用這種實現,不過其名兒為strip,因為prototype的方法都是力圖與ruby重名。

實現3   **如下:

string.prototype.trim = function ()
以擷取方式取得空白部分(當然允許中間存在空白符),總共呼叫了4個原生方法。預設得很是巧妙,substring以兩個數碼作為引數。math.max以兩個數碼作引數,search則歸回乙個數碼。速度比上邊兩個慢一點,但比下面大大都都快。

實現4  **如下:

string.prototype.trim = function ()
這個可以稱得上實現2的簡化版,就是利用候選操作符連線兩個正則。但這樣做就落空了瀏覽器優化的機會,比不上實現3。由於看來很優雅,許多類庫都施用它,如jquery與mootools

實現5    **如下:

string.prototype.trim = function ()
match是歸回乙個陣列,是以原字串切合要求的部分就成為它的元素。為了防止字串中間的空白符被解除,咱們需要動用到非捕獲性分組(?:exp)。由於陣列可能為空,咱們在後面還要做進一步的判定。好像瀏覽器在處理分組上比力無力,乙個字慢。所以不要迷信正則,雖然它基本上是萬能的。

實現6    **如下:

string.prototype.trim = function ()
把切合要求的部分提供出來,放到乙個空字串中。不過效率很差,尤其是在ie6中。

實現7    **如下:

string.prototype.trim = function ()
和實現6很相似,但用了非捕獲分組進行了優點,效能效之有一點點提公升。

實現8    **如下:

string.prototype.trim = function ()
沿著上邊兩個的思路進行改進,動用了非捕獲分組與字元集合,用?頂替了*,效果很是驚人。尤其在ie6中,可以用瘋狂來形容這次效能的提公升,直接秒殺火狐。

實現9   **如下:

string.prototype.trim = function ()
這次是用懶惰匹配頂替非捕獲分組,在火狐中得到改善,ie沒有上次那麼瘋狂。

實現10   **如下:

string.prototype.trim = function () 

}return whitespace.indexof(str.charat(0)) === -1 ? str : '' ;

}

我只想說,搞出這個的人已不是用牛來形容,已是神一樣的級別。它先是把可能的空白符全部列出來,在第一次遍歷中砍掉前邊的空白,第二次砍掉後面的空白。全過程只用了indexof與substring這個專門為處理字串而生的原生方法,沒有施用到正則。速度快得驚人,預計直逼上內部的二進位制實現,並且在ie與火狐(其它瀏覽器當然也毫無疑問)都有傑出的表現。速度都是零毫秒級另外。

實現11   **如下:

string.prototype.trim = function () 

}return str;

}

實現10已告訴咱們普通的原不認識的字串擷取方法是遠勝於正則替換,雖然是複雜一點。但只要正則不過於複雜,咱們就可以利用瀏覽器對正則的優化,改善程式執行效率,從實現8在ie的表現。我想通常不會有人在專案中應用實現10,因為那個whitespace 實現過長太難記了(當然如果你在打造乙個類庫,它絕對是起首)。實現11可謂其改進版,前邊部分的空白由正則替換負責砍掉,後面用原生方法處理,效果不遜於原版,但速度都是很是逆天。

實現12    **如下:

string.prototype.trim = function ()
實現10與實現11在寫法上更好的改進版,注意說的不是效能速度,而是易記與施用上。和它的兩個先輩都是零毫秒級另外,以後就用這個來工作與嚇人。

IE10,IE11下cookie無法寫入問題

asp.net 4.0的程式,發布後,測試在ie6,ie7,ie8,ie9下均可以正常登入,但是在ie10,ie11下就是無法儲存cookie,排查了一下是否ie10,ie11是否存在設定問題發下並不是。從別人的解決方案中找到了兩種解決方案 1,第一種解決方案,在web.confgi authent...

IE10,IE11下cookie無法寫入問題

asp.net 4.0的程式,發布後,測試在ie6,ie7,ie8,ie9下均可以正常登入,但是在ie10,ie11下就是無法儲存cookie,排查了一下是否ie10,ie11是否存在設定問題發下並不是。從別人的解決方案中找到了兩種解決方案 1,第一種解決方案,在web.confgi authent...

php主頁在IE下無法顯示

伺服器架構是 linux apache mysql php 資料夾 css,img,templates 包含檔案index.html 檔案 index.php 其中index.php的 如下 templates index.html的 如下 在非ie下可以正常顯示,但不知為什麼,在ie下訪問inde...