5

テキストボックスの先頭のスペースをトリミングし、テキストボックスの末尾のスペースをトリミングしたい。だから私はこのコードをウェブサイトで見つけました。これは最初、最後のスペースとその間の複数のスペースを削除することを想定しています。

function trim(s) {
    s = s.replace(/(^\s*)|(\s*$)/gi,"");
    s = s.replace(/[ ]{2,}/gi," ");
    s = s.replace(/\n /,"\n");
    return s;
}

私の問題は、まず、3行のコードの1つが、必要がないために中央のスペースをトリミングするコードであるということです。しかし、主な質問は、テキストボックスでこの関数にアクセスするにはどうすればよいですか?

onkeypressを使用してみましたが、うまくいきませんでした。以下は私が試したものです。

<p>Search: <input type="text" name="questioncontent" onkeypress="return trim(s)" /></p>

たとえば、このフレーズがテキストボックス「私の名前はピート」に入力されている場合、私はそれを望んでいます。次に、「私の名前はピートです」と表示されるように、開始と終了のスペースを削除する必要があります。しかし、どうすればこれを機能させることができますか?

アップデート:

Trim()がjQueryであることがわかったので、テキストボックスの最初と最後のスペースを削除するために手動でコーディングできるこれに相当するjavascriptはありますか?

4

3 に答える 3

12

HTMLを変更する必要があります:

<p>Search: <input type="text" name="questioncontent" onchange="return trim(this)" /></p>​

入力要素をパラメーターとして渡して、onkeypressの代わりにonchangeをトリミングして使用します。

次に、トリムは次のようにする必要があります。

function trim (el) {
    el.value = el.value.
       replace (/(^\s*)|(\s*$)/gi, ""). // removes leading and trailing spaces
       replace (/[ ]{2,}/gi," ").       // replaces multiple spaces with one space 
       replace (/\n +/,"\n");           // Removes spaces after newlines
    return;
}​

これにより、入力要素の値が変更され、先頭と末尾のスペースが削除され、複数のスペースが1つのスペースに置き換えられ、改行文字の後のスペースがすべて削除されます。

JSfiddle: http: //jsfiddle.net/jstoolsmith/ZNQQm

于 2012-05-25T06:17:45.497 に答える
0

コメントを読む..それは実際に関数がどのように使用されるかに依存します。私はそれを使ってテストしようとしましたがonkeypress、それはあなたの望む効果がありませんでした。しかし、私はあなたが望んでいたものにたものを手に入れましたが、それがあなたが望んでいたものであるかどうかはまだわかりません。

コードを操作するために関数を少し変更する必要がありましたが、基本的に、ぼかしの場合、関数を実行し、それに応じて入力テキストを変更します。

于 2012-05-25T01:57:56.967 に答える
0
function trim (el) {
    el.value = el.value.
       replace (/(^\s*)|(\s*$)/, ""). // removes leading and trailing spaces
       replace (/[ ]{2,}/gi," ").       // replaces multiple spaces with one space 
       replace (/\n +/,"\n");           // Removes spaces after newlines
    return;
}​
于 2014-04-14T12:47:35.867 に答える