2

trim()トリミングされた値は保存されないと思います。

ユーザーが文字列を送信する前に結果にトリムを適用すると、余分なスペースが削除されて正しく表示されます。しかし、トリミングされた値を取得すると、元のユーザー入力が得られ、スペースは削除されません。

入力フィールドからユーザー入力を取得する前に、次を追加しましたtrim()

input = $("<input type='text'>").val(txt);
input.trim()

うまくいきません。

4

4 に答える 4

2

割り当て直す必要があります。そうしないと意味がありません。

txt = txt.trim();
input = $("<input type='text'").val(txt);

注: 上記は、プレーンな文字列であるtrim()と仮定して、ネイティブ JavaScript メソッドを使用しています。txtサイトで IE8 以下をサポートする必要がある場合は、この回答を参照して、そのようなサポートを追加する方法を確認してください。

OPコメントに基づいて更新。HTMLが行っているのと同じように、リクエストはすべての内部スペースを切り捨てることであることが判明しました。これを実現するには、トリムのサポートを改善するために、次の行を変更します。

var text = $(this).text();

その3人に:

var text = $.trim($(this).text());
while (text.indexOf("  ") > 0)
    text = text.replace("  ", " ");

フィドルを更新しました。

于 2013-09-08T14:53:15.793 に答える
1

トリム()を文字列に適用します。つまりtxt、jQueryオブジェクトには適用しません(テキストボックスコントロール)

input = $("<input type='text'").val($.trim(txt));
于 2013-09-08T14:53:20.953 に答える
0

トリム メソッドは元の文字列を変更しません。結果を取得するには、その結果を変数に関連付ける必要があります。

------------------------------------------

次の説明を参照してください。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/Trim

説明

trim メソッドは、両端から空白を取り除いた文字列を返します。トリムは、文字列自体の値には影響しません。

------------------------------------------

それに加えて、ID で入力フィールドを参照することをお勧めします (例: $("#texto"))

<!doctype html>
<html lang="en">
<head>
  <meta charset="iso-8859-1">
  <title>jQuery.trim demo</title>
  <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
  <script>
   $(document).ready(function(){
     var txt = "         lots of spaces before and after         ";
     alert('pause');
     $("#texto").val("'" + txt.trim() + "'"); // ok
    // $("<input type='text'>").val("'" + txt.trim() + "'"); // nok
   });
 </script>
</head>
<body>
  <input type='text' id="texto" size='40' />
</body>
</html>

(ページhttp://api.jquery.com/jQuery.trim/からの例)

于 2013-09-08T15:22:44.737 に答える