亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

js去除空格的12種實用方法

2019-11-20 21:45:24
字體:
來源:轉載
供稿:網友

實現1

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

看起來不怎么樣, 動用了兩次正則替換,實際速度非常驚人,主要得益于瀏覽器的內部優化。一個著名的例子字符串拼接,直接相加比用Array做成的StringBuffer 還快。base2類庫使用這種實現。

實現2

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

和實現1 很相似,但稍慢一點,主要原因是它最先是假設至少存在一個空白符。Prototype.js使用這種實現,不過其名字為strip,因為 Prototype的方法都是力求與Ruby同名。

實現3

String.prototype.trim = function() { return this.substring(Math.max(this.search(//S/), 0),this.search(//S/s*$/) + 1);}

以截取方式取得空白部分(當然允許中間存在空白符),總共 調用了四個原生方法。設計得非常巧妙,substring以兩個數字作為參數。Math.max以兩個數字作參數,search則返回一個數字。速度比上 面兩個慢一點,但比下面大多數都快。

實現4

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

這個可以稱得上實現2的簡化版,就是 利用候選操作符連接兩個正則。但這樣做就失去了瀏覽器優化的機會,比不上實現3。由于看來很優雅,許多類庫都使用它,如JQuery與mootools

實現5

String.prototype.trim = function() { var str = this; str = str.match(//S+(?:/s+/S+)*/); return str ? str[0] : '';}

match 是返回一個數組,因此原字符串符合要求的部分就成為它的元素。為了防止字符串中間的空白符被排除,我們需要動用到非捕獲性分組(?:exp)。由于數組可 能為空,我們在后面還要做進一步的判定。好像瀏覽器在處理分組上比較無力,一個字慢。所以不要迷信正則,雖然它基本上是萬能的。

實現6

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

把符合要求的部分提供出來,放到一個空字符串中。不過效率很差,尤其是在IE6中。

實現7

String.prototype.trim = function() { return this.replace(/^/s*(/S*(?:/s+/S+)*)/s*$/, '$1');}

和實現6很相似,但用了非捕獲分組進行了優點,性能效之有一點點提升。

實現8

String.prototype.trim = function() { return this.replace(/^/s*((?:[/S/s]*/S)?)/s*$/, '$1');}

沿著上面兩個的思路進行改進,動用了非捕獲分組與字符集合,用?頂替了*,效果非常驚人。尤其在IE6中,可 以用瘋狂來形容這次性能的提升,直接秒殺火狐。

實現9

String.prototype.trim = function() { return this.replace(/^/s*([/S/s]*?)/s*$/, '$1');}

這次是用懶惰匹配 頂替非捕獲分組,在火狐中得到改善,IE沒有上次那么瘋狂。

實現10

String.prototype.trim = function() { var str = this, whitespace = ' /n/r/t/f/x0b/xa0/u2000/u2001/u2002/u2003/u2004/u2005/u2006/u2007/u2008/u2009/u200a/u200b/u2028/u2029/u3000'; for (var i = 0,len = str.length; i < len; i++) {  if (whitespace.indexOf(str.charAt(i)) === -1) {   str = str.substring(i);   break;  } } for (i = str.length - 1; i >= 0; i--) {  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與火狐(其他瀏覽器當然也毫無疑問)都有良好的表現。速度都是零毫秒級別的。

實現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.substring(0, i + 1);   break;  } } return str;}

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

實現12

String.prototype.trim = function() { var str = this, str = str.replace(/^/s/s*/, ''), ws = //s/, i = str.length; while (ws.test(str.charAt(--i))); return str.slice(0, i + 1);}

實現10與實現11在寫法上更好的改進版,注意說的不是性能速 度,而是易記與使用上。和它的兩個前輩都是零毫秒級別的,以后就用這個來工作與嚇人。

JS(去掉前后空格或去掉所有空格)的用法

1、 去掉字符串前后所有空格:

代碼如下:

function Trim(str){  return str.replace(/(^/s*)|(/s*$)/g, ""); }

說明:

如果使用jQuery直接使用$.trim(str)方法即可,str表示要去掉前后所有空格的字符串。

2、 去掉字符串中所有空格(包括中間空格,需要設置第2個參數為:g)

代碼如下:

function Trim(str,is_global){  var result;  result = str.replace(/(^/s+)|(/s+$)/g,"");  if(is_global.toLowerCase()=="g")      {        result = result.replace(//s/g,"");       }      return result;}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲欧美日韩在线高清直播| 国产日本欧美在线观看| 欧美乱大交xxxxx另类电影| 亚洲视频一区二区| 国自在线精品视频| 亚洲精品视频播放| 亚洲激情电影中文字幕| 日本一区二区在线播放| 欧美做受高潮1| 亚洲黄页视频免费观看| 亚洲欧美精品伊人久久| 成人激情电影一区二区| 亚洲人成电影网站色| 亚洲美女自拍视频| 亚洲精品国精品久久99热一| 精品久久久久久电影| 国产精品亚洲第一区| 久久久久久久久综合| 在线亚洲欧美视频| 欧美专区国产专区| 91久久精品美女高潮| 久久久亚洲精选| 久久久久久久久久久久av| 国产伦精品免费视频| 久久精品电影网站| 国产成人黄色av| 在线观看不卡av| 亚洲第一页中文字幕| 欧洲精品久久久| 国产精品男人爽免费视频1| 亚洲男人天堂手机在线| 亚洲国产97在线精品一区| 国产精品视频网址| 久久91精品国产91久久久| 蜜臀久久99精品久久久无需会员| 最新的欧美黄色| 日韩中文在线中文网在线观看| 亚洲自拍偷拍第一页| 成人欧美一区二区三区在线| 久久久久久久国产| 黄色成人av在线| 欧美在线一级视频| 久久男人资源视频| 最近2019中文字幕在线高清| 98午夜经典影视| 韩国三级日本三级少妇99| 色香阁99久久精品久久久| 亚洲第一区中文99精品| 成人免费在线网址| 亚洲欧美一区二区精品久久久| 91精品国产高清久久久久久91| 日韩在线激情视频| 国产精品电影久久久久电影网| 高清日韩电视剧大全免费播放在线观看| 美日韩精品免费视频| 91精品国产综合久久久久久蜜臀| 欧美激情a∨在线视频播放| 日韩成人高清在线| 日韩欧亚中文在线| 成人黄色免费看| 在线看福利67194| 欧美成人合集magnet| 欧美激情视频一区| 成人网在线视频| 日韩中文字幕在线| 国产精品电影网站| 国产成人在线视频| 欧美成人免费全部观看天天性色| 欧美高清激情视频| 久久99精品久久久久久青青91| 日韩中文字幕视频在线观看| 久久久亚洲国产| 亚洲另类欧美自拍| 国产精品久久久久久久久久久久久| 永久555www成人免费| 欧美人与物videos| 91久久精品在线| 夜夜嗨av色一区二区不卡| 亚洲乱码国产乱码精品精| 久久久久久久999精品视频| 国产精品日韩精品| 亚洲夜晚福利在线观看| 国产精品永久免费| 日韩黄色高清视频| 亚洲精品国产欧美| 亚洲一区二区福利| 在线精品国产欧美| 日韩男女性生活视频| 欧美日韩在线视频一区| 亚洲第一福利在线观看| 国语自产精品视频在免费| www.欧美三级电影.com| 91最新国产视频| 亚洲午夜精品久久久久久久久久久久| 国产精品一区二区久久精品| 日韩欧美高清视频| 亚洲自拍中文字幕| 黄网站色欧美视频| 欧美性极品xxxx娇小| 日韩视频在线观看免费| 国产日产欧美a一级在线| 国产精品视频不卡| 超在线视频97| 日韩精品在线观看一区二区| 97av在线播放| 国产欧美日韩亚洲精品| 亚洲欧美一区二区三区四区| 全亚洲最色的网站在线观看| 亚洲精品一区二区在线| 2019亚洲日韩新视频| 久久亚洲成人精品| 欧美成人在线免费视频| 久久精品视频在线播放| 欧美贵妇videos办公室| 8x海外华人永久免费日韩内陆视频| 亚洲男人天堂2023| 成人激情在线播放| 国产精品美女视频网站| 欧美日韩在线免费观看| 国产经典一区二区| 欧美裸体xxxx极品少妇| 国产69精品99久久久久久宅男| 国产精品视频网| 久久久久久久久久久成人| 国产精品视频久久久| 国产欧美日韩精品丝袜高跟鞋| 欧美午夜视频一区二区| 午夜精品理论片| 日韩精品福利在线| 欧美性一区二区三区| 欧美亚洲免费电影| 久久精品国产v日韩v亚洲| 国产美女久久精品| 欧美精品videosex性欧美| 国产精品久久久久高潮| 欧美中文字幕视频在线观看| 国产美女扒开尿口久久久| 国产精品久久久久久久久久| 2020欧美日韩在线视频| 国产精品va在线| 精品高清一区二区三区| 国产午夜精品免费一区二区三区| 国产精品视频内| 国产亚洲精品久久久优势| 久久国产精品影片| 国产精品嫩草影院久久久| 久久亚洲精品网站| 91免费观看网站| 日韩av在线免费观看| 久久人人爽亚洲精品天堂| 欧美激情久久久| 91精品中文在线| 97久久精品在线| 亚洲天堂免费在线| 91精品久久久久久久久久久久久久| 一区二区三区 在线观看视| 亚洲国产精品成人一区二区| 中日韩美女免费视频网址在线观看| 欧美精品制服第一页| 亚洲第一区在线观看| xxx欧美精品| 亚洲欧洲黄色网| 日韩免费av片在线观看| 亚洲精品av在线播放|