次の方法でjaueryを使用してテキストフィールドを検証したい:
1. テキスト フィールドは、小数点以下 1 桁の 0 ~ 9 のみを使用します。
2. 金額をマイナス以外で入力する場合は、数字の先頭にマイナス記号を入力してください。
$('[name="pm"]').keyup(function() {
//?
});
次の方法でjaueryを使用してテキストフィールドを検証したい:
1. テキスト フィールドは、小数点以下 1 桁の 0 ~ 9 のみを使用します。
2. 金額をマイナス以外で入力する場合は、数字の先頭にマイナス記号を入力してください。
$('[name="pm"]').keyup(function() {
//?
});
正規表現と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
。それを受け入れたい場合は、より複雑になりますが、上記のリンクが役立つはずです。
特定のソリューションの手配と追加:
@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(''); } });
あなたは望む結果を得るでしょう!
jQuery を使用している場合は、このプラグインを使用できます。