Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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
Regex 正则表达式-仅接受1到100之间的数字(不应接受任何其他数字)_Regex - Fatal编程技术网

Regex 正则表达式-仅接受1到100之间的数字(不应接受任何其他数字)

Regex 正则表达式-仅接受1到100之间的数字(不应接受任何其他数字),regex,Regex,我有一个正则表达式,它接受1到100之间的数字。但它接受特殊字符“%” 这是我正在使用的正则表达式 ^(0*100{1,1}\\.?((?<=\\.)0*)?%?$)|(^0*\\d{0,2}\\.?((?<=\\.)\\d*)?%?)$' ^(0*100{1,1}\\((?删除所有%?。这表示正则表达式应该匹配零个或一个%字符。删除所有%?。这表示正则表达式应该匹配零个或一个%字符。我会采取多步骤的方法。不会尝试单独使用正则表达式来解决这个问题。维护非常简单噩梦 我的解决方案:-

我有一个正则表达式,它接受1到100之间的数字。但它接受特殊字符“%”

这是我正在使用的正则表达式

^(0*100{1,1}\\.?((?<=\\.)0*)?%?$)|(^0*\\d{0,2}\\.?((?<=\\.)\\d*)?%?)$'

^(0*100{1,1}\\((?删除所有
%?
。这表示正则表达式应该匹配零个或一个
%
字符。

删除所有
%?
。这表示正则表达式应该匹配零个或一个
%
字符。

我会采取多步骤的方法。不会尝试单独使用正则表达式来解决这个问题。维护非常简单噩梦

我的解决方案:-

使用简单的正则表达式来确定该值是否为三位数或更少的整数

/^\d{1,3}$/
如果有效,则强制转换为数字


检查数字是否为
=0

我会采取一种多步骤的方法。不会单独用正则表达式来解决这个问题。维护是一场噩梦

我的解决方案:-

使用简单的正则表达式来确定该值是否为三位数或更少的整数

/^\d{1,3}$/
如果有效,则强制转换为数字


检查数字是否为
=0

我相信这个正则表达式也可以工作,并且比您提到的要简单一些

(100)|(0*\d{1,2})

这也会处理前导零。

我相信这个正则表达式也会工作,并且比您提到的要简单一些

(100)|(0*\d{1,2})

这也将处理前导零。

建议的正则表达式不适用于1位数字,此表达式适用于:

(100)|(0*\d{1,2})
已编辑:如果不希望接受值0,则可以使用以下正则表达式:

(100)|[1-9]\d?

建议的正则表达式不适用于1位数,此正则表达式适用于:

(100)|(0*\d{1,2})
已编辑:如果不希望接受值0,则可以使用以下正则表达式:

(100)|[1-9]\d?

这允许数字从1到100:

100|[1-9]?\d

这允许数字从1到100:

100|[1-9]?\d

这只匹配1到100(含1到100):
/\b((100)|[1-9]\d?)\b/

\b
匹配单词边界。这意味着类似于JavaScript中的内容:
/((100)|[1-9]\d?)/.test(“我有1000美元”)


将返回
true
。相反,使用单词边界将返回
false

,这只匹配1到100个字符:
/\b((100)|[1-9]\d?)\b/

\b
匹配单词边界。这意味着类似于JavaScript中的内容:
/((100)|[1-9]\d?)/.test(“我有1000美元”)

将返回
true
。相反,使用单词边界将返回
false
^(100 |[1-9][0-9]?)$ 此正则表达式匹配范围为1到100, 100个正好匹配100个或更多 [1-9]匹配范围为1到9的字符 [0-9]匹配0到9范围内的字符 ?前面标记的0和1之间的匹配

并在此处验证正则表达式组合以供参考

^(100 |[1-9][0-9]?)$ 此正则表达式匹配范围为1到100, 100个正好匹配100个或更多 [1-9]匹配范围为1到9的字符 [0-9]匹配0到9范围内的字符 ?前面标记的0和1之间的匹配


为了便于参考,请验证此处的正则表达式组合

如果匹配项包含小数点且没有前导零,我认为这是最佳选择

^(?:[0-9]|[1-9][0-9](\.\d{1,2})?|100|10.00)$
22   # returns True
100   # returns True
22.35  # returns True
20.23  # returns True
100.1  # returns false out bound/range
02     # returns False leading zero
69.235  # returns False exceeds 2 decimal places
001     # returns False has 2 leading zeroes

它将小数位数限制为两位小数检查测试组合

如果匹配项包含小数点且没有前导零,我认为这是最佳选择

^(?:[0-9]|[1-9][0-9](\.\d{1,2})?|100|10.00)$
22   # returns True
100   # returns True
22.35  # returns True
20.23  # returns True
100.1  # returns false out bound/range
02     # returns False leading zero
69.235  # returns False exceeds 2 decimal places
001     # returns False has 2 leading zeroes


它将小数位数限制为两位小数。检查测试组合是否有前导零:
001
?无前导零。它可以在1到100之间。用户可以输入1到3位1到100之间的数字。前导零如何:
001
?无前导零。它可以在1到100之间。用户可以在1到100之间输入1到3位。如果数字只有1位,您的正则表达式将失败。正确的正则表达式是:
(100)|(0*\d{1,2})
如果数字只有1位,您的正则表达式将失败。正确的正则表达式是:
(100)|(0*\d{1,2})
I removed%?。刚才我发现我也可以输入“0”。您能告诉我如何不允许0吗(零)我不想接受零。但是从1到100。很抱歉标题中的错误删除了%?。刚才我发现我也可以输入“0”。你能告诉我如何不允许0(零)吗我不想接受零。但是从1到100。很抱歉标题中的错误。我可以在我的控制器代码中执行此操作。但是jsut想尝试使用REGEXI可以在我的控制器代码中执行此操作。但是jsut想尝试使用REGEX@user2028437:编辑我的答案。这接受JS中的
1000
(^100$)^[1-9]\d?$
为1-100@vbranden第二个正则表达式在javascript中是有效的。它是有效的,但它允许1000,这超出了OP的要求,即它只能是1-100@vbranden抱歉,但我不明白-我在3个不同的javascript正则表达式测试仪中尝试了正则表达式,所有的正则表达式都匹配
100
,而不是
1000
。最后的零不匹配。@user2028437:编辑了我的答案。这接受JS中的
1000
(^100$)| ^[1-9]\d?$
为1-100@vbranden第二个正则表达式在javascript中是有效的。它是有效的,但它允许1000,这超出了OP的要求,即它只能是1-100@vbranden抱歉,但我不明白-我在3个不同的javascript正则表达式测试仪中尝试了正则表达式,所有的正则表达式都匹配
100
,而不是
1000
。最后的零不匹配。这是匹配的
123
999
这是匹配的
123
999