欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

裁剪字符串trim()自定義改進(jìn)版

 更新時(shí)間:2013年04月10日 16:12:59   作者:  
下面講述的是自定義trim()函數(shù)遇到的問題,改進(jìn)的過程,建議在支持的瀏覽器中使用原生函數(shù)

ECMAScript5已經(jīng)為字符串定義了原生的trim方法。這個(gè)方法可能比會(huì)比本文的任何版本的都要快。建議在支持的瀏覽器中使用原生函數(shù)。下面講述的是自定義trim()函數(shù)遇到的問題,改進(jìn)的過程。功夫在不斷淬煉中才能醇正。

JavaScript中沒有用于移除字符串頭尾空白的原生修剪方法。最常見的自定義trim()函數(shù)實(shí)現(xiàn)如下所示:

復(fù)制代碼 代碼如下:

function trim(text) {

return text.replace(/^\s+|\s+$/g, ‘');

}

這種實(shí)現(xiàn)使用一個(gè)正則表達(dá)式匹配字符串開頭和結(jié)尾的一或多個(gè)空白字符。replace()方法用空字符串替換所有匹配的部分。

然而這個(gè)實(shí)現(xiàn)方式有個(gè)基于正則表達(dá)式的性能問題,這種影響來自兩個(gè)方面:一方面是指明有兩個(gè)匹配模式的管道運(yùn)算符,另一方面是指明全局應(yīng)用該模式的g標(biāo)記。

考慮到這些,可以將正則表達(dá)式一分為二并去掉g標(biāo)記來重寫該函數(shù),稍稍提高它的速度。

復(fù)制代碼 代碼如下:

function trim(text) {

return text.replace(/^\s+/, ‘').replace(/\s+$/, ‘');

}

另一個(gè)改進(jìn)的版本。保證正則表達(dá)式盡可能地簡單。

復(fù)制代碼 代碼如下:

function trim(text) {

//刪除字符串的頭部空白

text = text.replace(/^\s+/, ‘');

// 循環(huán)清除尾部空白

for(var i=text.length; i--; ) {

if(/\S/.test(text.charAt(i))) { // \S 非空白字符

text = text.substring(0, i+1);

break;

}

}

return text;

}

使用建議:第2個(gè)trim()函數(shù)在小規(guī)模處理短字符串時(shí)性能還是好的。而第3個(gè)trim函數(shù)在處理長字符串時(shí)明顯更快。

題外話:簡單的裁剪字符串首尾空白字符函數(shù),引發(fā)了對(duì)正則表達(dá)式的性能問題的考慮并實(shí)現(xiàn)規(guī)避性能問題的方法。技術(shù)追求完美,只能在實(shí)踐中前行。

相關(guān)文章

  • javaScript獲取對(duì)象中非空的屬性實(shí)現(xiàn)方法詳解

    javaScript獲取對(duì)象中非空的屬性實(shí)現(xiàn)方法詳解

    這篇文章主要為大家介紹了javaScript獲取對(duì)象中非空的屬性實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • javascript的日期對(duì)象、數(shù)組對(duì)象、二維數(shù)組使用說明

    javascript的日期對(duì)象、數(shù)組對(duì)象、二維數(shù)組使用說明

    這篇文章主要介紹了javascript的日期對(duì)象、數(shù)組對(duì)象、二維數(shù)組使用說明,需要的朋友可以參考下
    2014-12-12
  • JavaScript入門教程(5) js Screen屏幕對(duì)象

    JavaScript入門教程(5) js Screen屏幕對(duì)象

    這是基本JavaScript的屏幕對(duì)象
    2009-01-01
  • JSON的語法與規(guī)則詳解

    JSON的語法與規(guī)則詳解

    這篇文章主要介紹了JSON的語法與規(guī)則詳解,Web?API可以接收J(rèn)SON格式的數(shù)據(jù),也可以返回JSON格式的數(shù)據(jù)。在接收J(rèn)SON?數(shù)據(jù)時(shí),需要使用相應(yīng)的庫或框架來解析JSON數(shù)據(jù),在返回JSON數(shù)據(jù)時(shí),可以使用相應(yīng)的庫或框架將數(shù)據(jù)轉(zhuǎn)換為JSON格式
    2023-07-07
  • 淺析用prototype定義自己的方法

    淺析用prototype定義自己的方法

    下面小編將通過實(shí)例由淺入深講解 prototype 的具體使用方法。需要的朋友可以過來參考下,希望對(duì)大家有所幫助
    2013-11-11
  • JavaScript中pop()方法的使用教程

    JavaScript中pop()方法的使用教程

    這篇文章主要介紹了JavaScript中pop()方法的使用教程,是JS入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-06-06
  • JSONP跨域原理以及實(shí)現(xiàn)方法詳解

    JSONP跨域原理以及實(shí)現(xiàn)方法詳解

    由于瀏覽器同源策略的限制,非同源下的請求,都會(huì)產(chǎn)生跨域問題,jsonp即是為了解決這個(gè)問題出現(xiàn)的一種簡便解決方案,下面這篇文章主要給大家介紹了關(guān)于JSONP跨域原理以及實(shí)現(xiàn)的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • js中直接聲明一個(gè)對(duì)象的方法

    js中直接聲明一個(gè)對(duì)象的方法

    這篇文章主要介紹了js中直接聲明一個(gè)對(duì)象的方法,需要的朋友可以參考下
    2014-08-08
  • JavaScript在IE和FF下的兼容性問題

    JavaScript在IE和FF下的兼容性問題

    長久以來JavaScript兼容性一直是Web開發(fā)者的一個(gè)主要問題。在正式規(guī)范、事實(shí)標(biāo)準(zhǔn)以及各種實(shí)現(xiàn)之間的存在的差異讓許多開發(fā)者日夜煎熬。為此,主要從以下幾方面差異總結(jié)IE和Firefox的Javascript兼容性:
    2014-05-05
  • 詳解JavaScript語言的基本語法要求

    詳解JavaScript語言的基本語法要求

    這篇文章主要介紹了JavaScript語言的基本語法要求要學(xué)習(xí)好JavaScript,首先我們要懂JavaScript語言的一些基本語法要求,感興趣的小伙伴們可以參考一下
    2015-11-11

最新評(píng)論