首頁 > web前端 > js教程 > 主體

裁切字串trim()自訂改進版_基礎知識

WBOY
發布: 2016-05-16 17:37:40
原創
1063 人瀏覽過

ECMAScript5已經為字串定義了原生的trim方法。這個方法可能比會比本文的任何版本的還要快。建議在支援的瀏覽器中使用原生函數。以下講述的是自訂trim()函數遇到的問題,改進的過程。功夫在不斷淬煉中才能醇正。

JavaScript中沒有用於移除字串頭尾空白的原生修剪方法。最常見的自訂trim()函數實作如下所示:

複製碼 程式碼如下:

function trim(text) {

function trim(text) {


function trim(text) {

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

}

這種實作使用一個正規表示式來匹配字串開頭和結尾的一或多個空白字元。 replace()方法用空字串取代所有符合的部分。

然而這個實作方式有個基於正規表示式的效能問題,這種影響來自兩個面向:一方面是指明有兩個符合模式的管道運算符,另一方面是指明全域應用模式的g標記。 考慮到這些,可以將正規表示式一分為二並去掉g標記來重寫該函數,稍微提高它的速度。

複製碼

程式碼如下:


function trim(text) {

function trim(text) {


另一個改良的版本。保證正規表示式盡可能簡單。

複製碼

程式碼如下:

function trim(text) {

function trim(text) {

function trim(text) {

//刪除字串的頭部空白

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

// 循環清除尾部空白

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

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

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

break; } } return text; } 使用建議:第2個trim()函數在小規模處理短字串時效能還是好的。而第3個trim函數在處理長字串時明顯更快。 題外話:簡單的裁切字串首尾空白字元函數,引發了對正規表示式的效能問題的考慮並實現規避效能問題的方法。技術追求完美,只能在實踐中前進。
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板