stringをトリミングするためのtrim()のカスタマイズおよび改良されたバージョン_基礎知識

WBOY
リリース: 2016-05-16 17:37:40
オリジナル
1057 人が閲覧しました

ECMAScript5 は文字列のネイティブのトリミング メソッドを定義しました。この方法は、おそらくこの記事のどのバージョンよりも高速です。サポートされているブラウザではネイティブ機能を使用することをお勧めします。以下に、カスタム Trim() 関数で発生する問題とその改善プロセスについて説明します。カンフーは絶えず鍛錬することによってのみ完成されます。

JavaScript には、文字列から先頭と末尾の空白を削除するネイティブのトリミング方法はありません。最も一般的なカスタム Trim() 関数の実装は次のとおりです:

コードをコピー コードは次のとおりです。

function trim(text) {

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

}

この実装では、正規表現を使用して、文字列の先頭と末尾にある 1 つ以上の空白文字と一致します。 replace() メソッドは、一致するすべての部分を空の文字列に置き換えます。

ただし、この実装には正規表現に基づくパフォーマンスの問題があります。この影響は 2 つの側面から生じます。1 つは 2 つの一致するパターンを持つパイプライン演算子を指定し、もう 1 つは、そのパターンを適用する g を指定することです。グローバルなパターンのマーク。

これを念頭に置いて、正規表現を 2 つに分割し、g タグを削除することで関数を書き直すことができ、若干高速になります。

コードをコピー コードは次のとおりです。

function trim(text) {

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

}

もう一つの改良版。正規表現はできるだけ単純にしてください。

コードをコピー コードは次のとおりです。

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);

休憩;

}

}

テキストを返す;

}

使用方法の提案: 2 番目の Trim() 関数のパフォーマンスは、短い文字列を小規模に処理する場合でも良好です。 3 番目のトリム関数は、長い文字列を処理する場合に大幅に高速になります。

トピック外: 文字列の先頭と末尾の空白文字を切り取る単純な関数により、正規表現のパフォーマンスの問題が検討され、パフォーマンスの問題を回避する方法が実装されました。テクノロジーは完璧を追求し、実践することでのみ前進することができます。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート