1

次の方法でjaueryを使用してテキストフィールドを検証したい:

1. テキスト フィールドは、小数点以下 1 桁の 0 ~ 9 のみを使用します。

2. 金額をマイナス以外で入力する場合は、数字の先頭にマイナス記号を入力してください。

$('[name="pm"]').keyup(function() {

    //?

 });
4

4 に答える 4

6

正規表現String#match:を介して文字列を検証できます。

if (this.value.match(/^-?\d+(?:\.\d){0,1}$/)) {
    // It's valid
}

またはもっとjQueryっぽい(そして上記はtextarea確実にサポートしていません、ただinput):

if ($(this).val().match(/^-?\d+(?:\.\d){0,1}$/)) {
    // It's valid
}

(例:this.value=> $(this).val()。)

正規表現を分解する:

  • ^-文字列の先頭に一致
  • -?-単一のオプション-文字
  • \d+-1つ以上の数字(0〜9)
  • (?:...)-以下を含む非キャプチャグループ。
    • \.\d-多く.ても1桁の後に1桁
  • {0,1}-キャプチャされないグループ化を0回または1回許可する
  • $-文字列の終わりに一致

上記はを拒否することに注意してください-.1。それを受け入れたい場合は、より複雑になりますが、上記のリンクが役立つはずです。

無償の実例| ソース

于 2012-06-15T11:31:43.577 に答える
2

特定のソリューションの手配と追加:

@Some_Coderからの回答

1) まずこうする

http://www.texotela.co.uk/code/jquery/numeric/

変更を加えたプレイメーカーの回答から

$('[name="pm"]').keyup(関数() {

   if($(this).val().indexOf('-') != 0){
      var val = $(this).val();
      $(this).val("-" + val);
   }


if ($(this).val() == '-') {
            $(this).val('');
        }
});

あなたは望む結果を得るでしょう!

于 2012-06-15T17:47:35.877 に答える
0

jQuery を使用している場合は、このプラグインを使用できます。

http://www.texotela.co.uk/code/jquery/numeric/

于 2012-06-15T11:56:36.927 に答える