文字列でtrim()
関数を使用するときは常に、ChromeおよびFirefoxで正常に動作しますが、IE8で次のエラーが表示されます。
オブジェクトはこのプロパティまたはメソッドをサポートしていません
なぜこれが起こるのか、回避策がある場合は誰にも教えてもらえますか?
IE8はトリム機能をサポートしていません。ポリフィルは次のとおりです。
if(typeof String.prototype.trim !== 'function') {
String.prototype.trim = function() {
return this.replace(/^\s+|\s+$/g, '');
};
}
必要に応じて、jqueryを追加して$ .trim(....)を使用できます。これは動作します。
$.trim(" hello ");
あなたにあげる
"hello"
Internet Explorerは、バージョン9からtrim()
のサポートのみを開始しました。
参考のため、 String.prototype.trim()
のMDNポリフィル は次のとおりです。
if (!String.prototype.trim) {
(function() {
// Make sure we trim BOM and NBSP
var rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
String.prototype.trim = function() {
return this.replace(rtrim, '');
};
})();
}
support は次のとおりです。
+--------+---------+----+-------+--------+
| Chrome | Firefox | IE | Opera | Safari |
+--------+---------+----+-------+--------+
| All | 3.5 | 9 | 10.5 | 5 |
+--------+---------+----+-------+--------+
以来、@ nemoと@ karesh-aの助けを借りてjQueryを使用していました。
if(typeof String.prototype.trim !== 'function') {
String.prototype.trim = function(){
return jQuery.trim( this );
}
}