次の方法で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 を使用している場合は、このプラグインを使用できます。