ECMAScript5 は文字列のネイティブのトリミング メソッドを定義しました。この方法は、おそらくこの記事のどのバージョンよりも高速です。サポートされているブラウザではネイティブ機能を使用することをお勧めします。以下に、カスタム Trim() 関数で発生する問題とその改善プロセスについて説明します。カンフーは絶えず鍛錬することによってのみ完成されます。
JavaScript には、文字列から先頭と末尾の空白を削除するネイティブのトリミング方法はありません。最も一般的なカスタム Trim() 関数の実装は次のとおりです:
return text.replace(/^s |s $/g, '');
}
この実装では、正規表現を使用して、文字列の先頭と末尾にある 1 つ以上の空白文字と一致します。 replace() メソッドは、一致するすべての部分を空の文字列に置き換えます。
ただし、この実装には正規表現に基づくパフォーマンスの問題があります。この影響は 2 つの側面から生じます。1 つは 2 つの一致するパターンを持つパイプライン演算子を指定し、もう 1 つは、そのパターンを適用する g を指定することです。グローバルなパターンのマーク。
これを念頭に置いて、正規表現を 2 つに分割し、g タグを削除することで関数を書き直すことができ、若干高速になります。
return text.replace(/^s /, '').replace(/s $/, '');
}
もう一つの改良版。正規表現はできるだけ単純にしてください。
//文字列の先頭の空白を削除します
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 番目のトリム関数は、長い文字列を処理する場合に大幅に高速になります。
トピック外: 文字列の先頭と末尾の空白文字を切り取る単純な関数により、正規表現のパフォーマンスの問題が検討され、パフォーマンスの問題を回避する方法が実装されました。テクノロジーは完璧を追求し、実践することでのみ前進することができます。