文字列trimを切り取り()カスタム改ページ
1374 ワード
ECMAScript 5は文字列のために原生のtrim方法を定義しました.この方法は本明細書のどのバージョンよりも速いかもしれない.サポートされているブラウザで原生関数を使用することを推奨します.以下では、カスタムtrim()関数によって発生した問題を改善するプロセスを説明します.功夫は不断に急冷する中でこそ純粋になることができる.
JavaScriptには文字列の先頭の空白を取り除くためのオリジナルのトリミング方法がありません.最も一般的なカスタムtrim()関数は、以下のように実装されます.
しかし、この実施形態には、正規表現に基づく性能問題があり、この影響は、2つの側面から来ている.一方では、2つの整合モードが指定されているパイプ演算子であり、一方では、グローバルにこのモードを適用するためのgマークを指定している.
これらを考慮すると、正規表現を2つに分けてgマークを外して関数を書き換え、その速度を少し上げることができます.
余談:文字列の先頭の空白文字関数を簡単に裁断し、正規表現の性能問題を考慮し、回避性能問題を実現する方法.技術は完璧を追求して、実践の中で前進することしかできません.
JavaScriptには文字列の先頭の空白を取り除くためのオリジナルのトリミング方法がありません.最も一般的なカスタムtrim()関数は、以下のように実装されます.
function trim(text) {
return text.replace(/^\s+|\s+$/g, ‘');
}
この実装では、正規表現を使用して、文字列の先頭と最後の空白文字にマッチします.replace()メソッドはすべての整合部分を空の文字列で置換します.しかし、この実施形態には、正規表現に基づく性能問題があり、この影響は、2つの側面から来ている.一方では、2つの整合モードが指定されているパイプ演算子であり、一方では、グローバルにこのモードを適用するための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);
break;
}
}
return text;
}
提案を使用します.2番目のtrim()関数は、短い文字列を小規模で処理する場合にはまだ性能がいいです.3番目のtrim関数は、長い文字列を処理するときに、明らかに速くなります.余談:文字列の先頭の空白文字関数を簡単に裁断し、正規表現の性能問題を考慮し、回避性能問題を実現する方法.技術は完璧を追求して、実践の中で前進することしかできません.