次の正規表現を負の数に拡張したい。
this.value = this.value.replace(/[^0-9\.]/g, "");
(/[^-0-9.]/g, "") のようにマイナス記号を追加しようとしましたが、これによりマイナス記号を数値のどこにでも入力できます。番号の先頭にマイナス記号を 1 つだけ使用できるようにしたい。その後のマイナスの出現は無視する必要があります。
助けてください。
次の正規表現を負の数に拡張したい。
this.value = this.value.replace(/[^0-9\.]/g, "");
(/[^-0-9.]/g, "") のようにマイナス記号を追加しようとしましたが、これによりマイナス記号を数値のどこにでも入力できます。番号の先頭にマイナス記号を 1 つだけ使用できるようにしたい。その後のマイナスの出現は無視する必要があります。
助けてください。
正規表現を使用する理由 どうですか:
var temp = parseFloat(this.value)
this.value = isNaN(temp) ? "" : temp;
これも機能するはずです:
var temp = +this.value;
this.value = isNaN(temp) ? "" : temp;
ダッシュを文字クラスの外に置きます。
this.value = this.value.replace(/^-?[^0-9\.]/g, "");
あなたが提供した正規表現は、「100 + 200 = 300」を「100200300」に変換するため、正の数自体に問題があります。
これを試してみることをお勧めします: someString.match(/-?[\d]+.?[\d]*/);