ie 7/8不支援trim的屬性的解決方案_javascript技巧
在ie 7 8瀏覽器中,如果使用trim()屬性去除空格的話,則會導致報錯。
因此解決這個問題有以下方案:
var aa = $("#id").val().trim() --- 在IE中無法解析trim() 方法
解決方法:
[ var aa = $.trim($("#id").val()); ] 這個不好用,還是用下面介紹的吧,第一個已經過測試。
W3C那群人的腦袋被驢踢了,直到java script1.8.1才支持trim函數(與trimLeft,trimRight),可惜現在只有 firefox3.5支持。由於去除字串兩邊的空白實在太常用,各大類庫都有它的影子。加之,外國人都很有研究精力,搞鼓了相當多實現。
實現1 OK 的。 (在js中寫上這個,然後直接在你要去空格的字串後面跟上 .trim() 即可)
String.prototype.trim = function (trim = function (trim = function >return this .replace(/^ss*/, '' ).replace(/ss*$/, '' );
}
實現2
}
實現3
以截取方式取得空白部分(當然允許中間存在空白符),總共呼叫了4個原生方法。預設得很是巧妙,substring以兩個數字作為參數。 Math.max以兩個數位作參數,search則歸回一個數字。速度比上邊兩個慢一點,但比下面大大都快。
這個可以稱得上實現2的簡化版,就是利用候選運算子連接兩個正規。但這樣做就落空了瀏覽器優化的機會,比不上實現3。由於看來很優雅,許多類別庫都施用它,如JQuery與mootools
複製程式碼
match是歸回一個陣列,是以原字串切合要求的部分就成為它的元素。為了防止字串中間的空格符號被解除,咱們需要動用到非捕獲性分組(?:exp)。由於數組可能為空,咱們在後面還要做進一步的判定。好像瀏覽器在處理分組上比力無力,一個字慢。所以不要迷信正則,雖然它基本上是萬能的。
實現6
把切合要求的部分提供出來,放到一個空字串中。不過效率很差,尤其是在IE6。
實現7
複製程式碼
和實現6很相似,但用了非捕獲分組進行了優點,性能效之有一點點提升。
實現8
String.prototype.trim = function (trim = function (trim = function >return this .replace(/^s*((?:[Ss]*S)?)s*$/, '$1' );
}
實現9
}
實現10
if (whitespace.indexOf (str.charAt(i)) === -1) {
str = str.substring(0, i 1);
break ;
}
}
return whitespace.indexOf (str.charAt(0)) === -1 ? str : '' ;
}
我只想說,搞出這個的人已不是用牛來形容,已是神一樣的等級。它先是把可能的空白符全部列出來,在第一次遍歷中砍掉前邊的空白,第二次砍掉後面的空白。全過程只用了indexOf與substring這個專門為處理字串而生的原生方法,沒有施用到正規。速度快得驚人,預計直逼上內部的二進制實現,並且在IE與火狐(其它瀏覽器當然也毫無疑問)都有傑出的表現。速度都是零毫秒另外。
複製程式碼
str = str.substring(0, i 1);
break ;
}
}
return str;
}
實現10已告訴咱們普通的原不認識的字符串截取方法是遠勝於正則替換,雖然是複雜一點。但只要正則不過於複雜,咱們就可以利用瀏覽器對正則的優化,改善程序執行效率,從實現8在IE的表現。我想通常不會有人在專案中應用實現10,因為那個whitespace 實現過長太難記了(當然如果你在打造一個類別庫,它絕對是起首)。實現11可謂其改進版,前邊部分的空白由正則替換負責砍掉,後面用原生方法處理,效果不遜於原版,但速度都是很是逆天。
實現12
return str.slice(0, i 1);
}
实现10与实现11在写法上更好的改进版,注意说的不是性能速度,而是易记与施用上。和它的两个先辈都是零毫秒级另外,以后就用这个来工作与吓人。
下面是老外给出的比力结果,执行背景是对Magna Carta 这文章(超过27,600字符)进行trim操作。
实现 Firefox 2 IE 6
trim1 15ms trim2 31ms trim3 46ms 31ms
trim4 47ms 46ms
trim5 156ms 1656ms
trim6 172ms 2406ms
trim7 172ms 1640ms
trim8 281ms trim9 125ms 78ms
trim10 trim11 trim12 trim函数实现揭晓自己的想法,想懂得原作者说什么请看原文。
JS 去除空格的方法目前共有 12 種:
實作 1
String.prototype.trim = function() { return this.replace(/^ss*/, '' ).replace(/ss*$/, ''); }
實作2
String.prototype.trim = function() { return this.replace(/^s /, '').replace(/s $/, ''); }
實作3
String.prototype.trim = function() { return this.s string(Math.max(this.search(/S/), 0),this.search(/Ss*$/ ) 1); }
實作4
String.prototype.trim = function() { return this.replace(/^s |s $/g, ''); }
String.prototype.trim = function() { var str = this; str = str.match(/S (?:s S )*/);回傳 str ?字串[0]:''; }
String.prototype.trim = function() { return this.replace(/ ^s*(S*(s S )*)s*$/, '$1'); }
實作7
String.prototype.trim = function() { return this.replace(/^s*(S*(?:s S )*)s*$/, '$1'); }
String.prototype.trim = function() { return this.replace(/^s*((?:[Ss]*S)?)s*$/, '$1'); }
String.prototype.trim = function() { return this.replace(/^s*([Ss]*?)s*$/, '$1'); }
String.prototype.trim = function() { var str = this,whitespace = ' nrtfx0bxa0??????????????? '; for (var i = 0,len = str.length; i = 0; i--) { if (whitespace.indexOf(str.charAt(i)) === -1) { str = str.s string( 0, 我1);休息;回傳whitespace.indexOf(str.charAt(0)) === -1 ?字串:''; }
實作11
String.prototype.trim = function() { var str = this, str = str.replace(/^s /, ''); for (var i = str.length - 1; i >= 0; i--) { if (/S/.test(str.charAt(i))) { str = str.s string(0, i 1 ) ;休息;返回str; }
實作12
String.prototype.trim = function() { var str = this, str = str.replace(/^ss*/, ''), ws = /s /, i = str.長度; while (ws.test(str.charAt(--i)));回傳str.slice(0, i 1); }
看起來不太怎麼樣,動用了兩次正規替換,實際上速度非常驚人,主要得益於瀏覽器的內部優化。實作。都是力求與Ry同名。 max以兩個數字作參數,搜尋則回傳一個數字。操作符連接兩個則。
符合是傳回一個陣列因此,原字串符合要求的部分就成為它的元素。由於備份可能崩潰,我們在後面還需要進一步的對策。 🎜>
把符合要求的提供部分拿出來,放到一個空字符串中。 不過效率很差,尤其是在IE6中。分組進行了優點,性能效率之有一點點提升。 *,效果非常驚人。包,在火狐中得到改善,IE上次沒有那麼瘋狂。等級了。使用到正則。 🎜>實現10已經告訴我們普通的清晰弦截取方法是遠勝於正則替換,雖然是複雜一點。的表現中實現8。實現11可謂其改進版,前面部分的空白由正則替換負責砍掉,後面用原生方法處理,效果不遜 於原版,但速度都是非常逆天。
實現10與實現11在寫法上更好的改良版,注意說的不是性能速 度,而是易記與使用上。和它的兩個前輩都是零毫秒等級的,以後就用這個來工作與嚇人。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

在PHP程式設計中,處理字串時常會遇到空格的問題,這其中包括中文空格。在實際開發中,我們常常會使用trim函數來去除字串兩端的空格,但是對於中文空格的處理相對複雜一些。本文將介紹如何利用PHP中的trim函數來處理中文空格,並提供具體的程式碼範例。首先,讓我們來了解一下中文空格的種類。在中文中,空格不僅包含常見的英文空格(space),還有其他一些特殊的空格

固態硬碟的trim功能主要是優化固態硬碟,解決SSD使用後的降速與壽命的問題,透過準備資料塊進行重用來提高SSD效率的功能。 Trim功能幾乎是所有SSD固態硬碟都具有的功能,是一個ATA指令,當系統確認SSD支援Trim在刪除資料時,不向硬碟通知刪除指令,只使用Volume Bitmap來記住這裡的資料已經刪除。從而實現更快速的數據處理。

使用strings.Trim函數去除字串首尾的指定字元集在Go語言中,strings.Trim函數是一個非常實用的函數,可以去除字串首尾指定字元集,讓字串更加整潔和規範。本文將介紹如何使用strings.Trim函數,以及展示一些程式碼範例。首先我們來看看strings.Trim函數的原型:funcTrim(sstring,cutsetstri

PHP中trim()函數的使用指南trim()函數在PHP中非常常用,用於移除字串開頭和結尾的空格或其他指定字元。本文將詳細介紹trim()函數的使用方法,並提供具體的程式碼範例。一、函數語法trim()函數的語法如下:trim(string$str,string$character_mask=""):string此函數接受兩個參數,

PHP函數"trim"是一種非常有用的字串處理函數。它可以幫助我們去除字串兩端的空白字符,包括空格、製表符、換行符等等。在編寫PHP程式時,我們經常會遇到需要清理使用者輸入的情況,這時候使用"trim"可以確保我們得到乾淨的字串,避免因為使用者輸入不規範而引發錯誤。下面是一個簡單的程式碼範例,展示如何使用"trim"函數:<?php

使用SSD驅動器會讓您一直擔心丟失資料並且無法恢復資料。但是,Windows允許您透過執行僅寫入必要資料的TRIM命令來實現最佳效能,而無需管理舊資料區塊。為此,您需要確保您的SSD支援TRIM並在您的作業系統中啟用它。如何檢查是否啟用了TRIM?在大多數情況下,預設情況下,在現代SSD中啟用TRIM功能。但為了確保這一點簽出,您可以使用管理權限來執行命令。只要開啟提升的命令提示符,執行fsutil行為查詢DisableDeleteNotify命令,您的SSD就會列出。 0表示已啟用,1表示已停用。如

靈活運用:使用trim函數輕鬆處理中文空格問題在日常的程式設計工作中,我們經常會遇到處理字串的情況,而字元之間的空格問題是一個比較常見且讓人頭疼的挑戰。特別是對於中文文本,中英文之間的空格處理更是需要特別的考慮。在這篇文章中,我們將介紹如何透過使用PHP程式語言中的trim函數來輕鬆處理中文空格問題,並提供具體的程式碼範例幫助讀者更好地理解和使用這個函數。 PHP

PHP教學:學習使用trim函數去除中文空格,需要具體程式碼範例在PHP開發中,經常會遇到需要處理字串的情況,而其中一個常見的需求就是去除字串兩端的空格。在處理英文字串時,我們可以直接使用PHP內建的trim函數來實現這一操作,但是當字串中包含中文字元時,trim函數可能無法正常去除中文空格,這時就需要使用一些特殊處理方法來實現我們的需求。本文將介紹
