Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 十进制数的正则表达式_Asp.net_Regex - Fatal编程技术网

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是的,你的观点是对的,但是用正则表达式很难做到,你有什么想法吗?