こんにちは、この関数のこの正規表現を改善して負の値を含めることができますか?私は/[0-9]{2}$/
は、小数点以下2桁を検証し得る限り負の値を持つ小数のkeypressの正規表現
function Validate7EntY2Dec(e, field) {
key = e.keyCode ? e.keyCode : e.which
// backspace
if (key == 8) return true
// 0-9 a partir del .decimal
if (field.value != "") {
if ((field.value.indexOf(".")) > 0) {
if (key > 47 && key < 58) {
if (field.value == "") return true
regexp = /[0-9]{2}$/
return !(regexp.test(field.value))
}
}
}
// 0-9
if (key > 47 && key < 58) {
if (field.value == "") return true
regexp = /[0-9]{7}/
return !(regexp.test(field.value))
}
// .
if (key == 46) {
if (field.value == "") return false
regexp = /^[0-9]+$/
return regexp.test(field.value)
}
// other key
return false
}
、および/[0-9]{7}/
は整数で7 digistを検証:
関数です。私はこれも負の値を受け入れたいので、ユーザーは例えば-1234567.12
を挿入することができます。
私はこの正規表現^[+-]?[0-9]{1,9}(?:\.[0-9]{1,2})?$
を見つけましたが、私の機能に挿入する方法はわかりません。 はまた/[0-9]{7}/
に-
を追加すると、負の値を受け入れることがわかったが、それはdidntの、私がやったこの:/[-0-9]{7}/
私はそのが既に使用されているので、私の機能を維持する必要があり
。
ありがとうございます!
編集:
function Validate7EntY2Dec_Neg(e, field) {
key = e.keyCode ? e.keyCode : e.which
// backspace
if (key == 8) return true
// 0-9 a partir del .decimal
if (field.value != "") {
if ((field.value.indexOf(".")) > 0) {
if (key > 47 && key < 58) {
if (field.value == "") return true
regexp = /[0-9]{2}$/
return !(regexp.test(field.value))
}
}
}
// 0-9
if (key > 47 && key < 58) {
if (field.value == "") return true
regexp = /[0-9]{7}/
return !(regexp.test(field.value))
}
// .
if (key == 46) {
if (field.value == "") return false
regexp = /^[+-]?[0-9]{7}\.[0-9]{2}$/
return regexp.test(field.value)
}
// other key
return false
}
変更がオンになっている "(キー== 46)場合、この関数..."
if (key == 46) {
if (field.value == "") return false
regexp = /^[+-]?[0-9]{7}\.[0-9]{2}$/
return regexp.test(field.value)
}
:
@Ian私のコードの勧告は、このようにした後
@Ianエスケープ方法 - ??
なぜ使用正規表現:
は、私は、次のコードを提案するでしょうか? 'number <0'は負の値を完全に細かくチェックしています – SeinopSys
正規表現は@SeinopSysの小数です。私は7つの整数と小数点以下2つが必要です – Marcos
あなたはこれらの部分を検証するためにさまざまな方法を使うことができます。正規表現ベースのソリューションよりも維持しています。 – SeinopSys