これは lgzx 社からのインタビューの質問です。js の文字列に、文字列の両側の空白文字 (スペース、タブ、フォーム フィードなどを含む) を削除するメソッドを追加する必要があります。
次のようにコードをコピーします。
String.prototype.trim = function() {
//return this.replace(/[(^/s+)(/s+$)]/g,"");//文字列内の空白文字を削除します
//return this.replace(/^/s+|/s+$/g,""); //
return this.replace(/^/s+/g,"").replace(//s+$/g,"");
}
JQuery1.4.2、Mootoolsで使用
次のようにコードをコピーします。
関数トリム1(str){
return str.replace(/^(/s|/xA0)+|(/s|/xA0)+$/g, '');
}
jQuery1.4.3、Prototype によって使用されます。このメソッドは、小規模な文字列を処理する場合のパフォーマンスをわずかに向上させるために g を削除します。
次のようにコードをコピーします。
関数トリム2(str){
return str.replace(/^(/s|/u00A0)+/,'').replace(/(/s|/u00A0)+$/,'');
}
パフォーマンス テストを実施した後、Steven Levithan は、長い文字列を処理する際のパフォーマンスが向上する、JS で文字列をトリミングする最速の方法を提案しました。
次のようにコードをコピーします。
関数トリム3(str){
str = str.replace(/^(/s|/u00A0)+/,'');
for(var i=str.length-1; i>=0; i--){
if(//S/.test(str.charAt(i))){
str = str.substring(0, i+1);
壊す;
}
}
文字列を返します。
}
最後に言及する必要があるのは、ECMA-262 (V5) が String にネイティブのトリム メソッド (15.5.4.20) を追加していることです。さらに、TrimLeft メソッドと TrimRight メソッドが Molliza Gecko 1.9.1 エンジンの String に追加されました。