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