Asp.net 十进制数的正则表达式
可能重复:Asp.net 十进制数的正则表达式,asp.net,regex,Asp.net,Regex,可能重复: 表中的列具有数字(18,3)数据类型。因此,我创建了验证 类似以下表达式:“^\d+([\.][0-9]{0,3})$”。是否正确?我希望用户只输入数字而不是字符 或者 1 1.0 1.12 1.123 11.23 123.123 您可以使用更简单的正则表达式 ^\d+.?\d{0,3}$ 如果您想检查您的正则表达式是否正确,请在测试用例中使用它。您可以使用更简单的正则表达式 ^\d+.?\d{0,3}$ 如果您想检查您的正则表达式是否正确,请在您的测试用例上检查它。尝试以
表中的列具有数字(18,3)数据类型。因此,我创建了验证 类似以下表达式:
“^\d+([\.][0-9]{0,3})$”
。是否正确?我希望用户只输入数字而不是字符
或者
1
1.0
1.12
1.123
11.23
123.123
您可以使用更简单的正则表达式
^\d+.?\d{0,3}$
如果您想检查您的正则表达式是否正确,请在测试用例中使用它。您可以使用更简单的正则表达式
^\d+.?\d{0,3}$
如果您想检查您的正则表达式是否正确,请在您的测试用例上检查它。尝试以下方法:
^\d{1,18}(?:\.\d{1,3})?$
更新:
与使用正则表达式验证数字不同,您可以将输入解析为数字,然后进行比较。尝试以下方法:
^\d{1,18}(?:\.\d{1,3})?$
更新:
您可以将输入解析为一个数字,然后进行比较,而不是使用正则表达式来验证一个数字。
^\d{1,18}|(?=.{3,19})\d+\.\d{1,3}$
那么:
^\d{1,18}|(?=.{3,19})\d+\.\d{1,3}$
我把它写成
“^\d{1,15}(\.\d{0,3})?$”
。它工作正常。我写的是“^\d{1,15}(\.\d{0,3})?$”
。它工作正常。虽然您没有检查整数部分的长度,但对我来说似乎没问题。理论上,有人可以编写12345678901213456789012345678901234567890.123,您的正则表达式会接受它,但您的数据库不会。在我看来,这似乎是正常的,尽管您没有检查整数部分的长度。理论上,有人可以编写123456789012134567890123458901234567890.123,您的正则表达式会接受它,但您的数据库不会接受。这将匹配123。
例如。@M42我认为123。
是一个有效的数字,至少我总是将此表单用作浮点文本,它被视为123.0
。事实上123.
是一个有效数字,但OP没有说它要接受它。这将匹配123.
例如。@M42我认为123.
是一个有效数字,至少我总是将此表单用作浮点文本,它被视为123.0
。事实上123.
是一个有效的数字,但OP没有说要接受它。这将匹配整数部分为18位加小数部分为3位的数字。我认为最大长度必须包含18位小数。@M42是的,你的观点是对的,但用正则表达式很难做到,你有什么想法吗?这将匹配整数部分18位加小数部分3位的数字。我想最大长度必须是包含小数点后18位。@M42是的,你的观点是对的,但是用正则表达式很难做到,你有什么想法吗?