467

.trim()JavaScriptプログラムの1つで文字列に適用しようとしました。Mozillaでも問題なく動作しますが、IE8で試してみるとエラーが表示されます。ここで何が起こっているのか誰か知っていますか?とにかくIEで動作させることはできますか?

コード:

var ID = document.getElementByID('rep_id').value.trim();

エラー表示:

メッセージ:オブジェクトはこのプロパティまたはメソッドをサポートしていません
ライン:604
Char:2
コード:0
URI:http://test.localhost/test.js
4

14 に答える 14

778

次のコードを追加して、文字列にトリム機能を追加します。

if(typeof String.prototype.trim !== 'function') {
  String.prototype.trim = function() {
    return this.replace(/^\s+|\s+$/g, ''); 
  }
}
于 2010-02-22T00:44:34.773 に答える
203

その機能は IE では実装されていないようです。jQuery を使用している場合は、代わりに使用できます$.trim()(ただし、jQuery 3.5 で非推奨になりました)。

于 2010-02-22T00:43:32.510 に答える
57

jQuery:

$.trim( $("#mycomment").val() );

誰かが使用しています$("#mycomment").val().trim();が、これはIEでは機能しません。

于 2011-12-24T07:00:26.027 に答える
34

残念ながら、trim() のクロス ブラウザー JavaScript サポートはありません。

jQuery (.trim() メソッドがある) を使用していない場合は、次のメソッドを使用して文字列にトリム サポートを追加できます。

String.prototype.trim = function() {
    return this.replace(/^\s+|\s+$/g,"");
}
String.prototype.ltrim = function() {
    return this.replace(/^\s+/,"");
}
String.prototype.rtrim = function() {
    return this.replace(/\s+$/,"");
}
于 2010-02-22T00:46:17.143 に答える
13

https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Global_Objects/String/Trim

これはjavascriptに最近追加されたものであり、IEではサポートされていません。

于 2010-02-22T00:40:38.417 に答える
8

入力から値をトリミングしようとしたときに同様の問題が発生し、それが何もないかどうかを尋ねました。

if ($(this).val().trim() == "")

しかし、これは IE6 - 8 の作業にスパナを投げました。

   var originalValue = $(this).val();

ただし、jQuery のトリム メソッドを使用すると、すべてのブラウザーで完全に機能します。

var originalValueTrimmed = $.trim($(this).val());              
            if (originalValueTrimmed  == "") { ... }
于 2010-07-15T16:07:05.050 に答える
3

trim()JavaScript標準にはネイティブメソッドはないと思います。たぶんMozillaが提供しますが、IEで必要な場合は、自分で作成する必要があります。このページにはいくつかのバージョンがあります。

于 2010-02-22T00:40:25.863 に答える
3

私はIE9で同じ問題を抱えていましたが、サポートされているhtmlバージョンを、最初の行の前の次のタグで宣言したとき

<!DOCTYPE html>
<HTML>
<HEAD>...
.
.

問題は解決しました。

于 2014-01-14T03:51:19.937 に答える
0

trim()おそらく最近のWindowsの更新後、IEがサポートを停止することがわかりました。Dojo を使用している場合はdojo.string.trim()、クロス プラットフォームで動作する を使用できます。

于 2011-02-25T16:56:00.287 に答える
0
var res = function(str){
    var ob; var oe;
    for(var i = 0; i < str.length; i++){
        if(str.charAt(i) != " " && ob == undefined){ob = i;}
        if(str.charAt(i) != " "){oe = i;}
    }
    return str.substring(ob,oe+1);
}
于 2010-05-13T10:10:34.307 に答える
0

この問題は、IE がイントラネット サイトで互換モードを使用していることが原因である可能性があります。これを解決するには 2 つの方法があります。IE を更新して、ローカル マシンで互換モードを使用しないようにすることができます (IE11 の場合: [ツール] -> [互換表示の設定] -> [イントラネット サイトを互換表示で表示する] のチェックを外します)。

さらに良いことに、Web ページのメタ タグを更新できます。加える:

...
<head>
   <meta http-equiv="X-UA-Compatible" content="IE=edge">
</head>
...

これは何を意味するのでしょうか?最新の互換モードを使用するようにIEに指示しています。詳細については、MSDN を参照してください: 従来のドキュメント モードの指定

于 2015-12-17T01:14:55.473 に答える