10進数の正規表現を作成しようとしていますが、同時に「-」または「+」記号を最初にオプションにすることもできます。
これについてはたくさんの情報があるので、私はこれで終わりました:
/^[+-]?\d+(\.\d+)?$/
そのため、関数を使用してコンソールでこれをテストしましたが、test()
完全に機能しています。
私の質問は、このチェックをどこで行うかについてです。
チェックがオンになっている場合、間違った記号を「消費」するために
keypress
使用できますが、このようなテキストを取得していて、最後に入力された記号にアクセスできません -preventDefault()
$(event.target).val()
チェックがオンになっている場合、
keyup
テキスト全体にアクセスできますが、間違ったシンボルを削除できません。これは、それがどれで、どこに配置されたかわからないためです (マウスを使用して、有効な文字列の先頭または途中)
シンボルのみを検証するのではなく、シンボルの組み合わせをチェックする必要があります。例えば:
- //invalid
- 1 //valid
1. //invalid
1.2 //valid
それで、文字列全体が入力されたときにチェックする必要があると思いますが、次に、間違った文字をどのように削除しますか? 無効なときに文字列全体を削除すると、正しく見えません。