我正在修改正则表达式验证控件。 此刻正则表达式如下:Modyfying正则表达式来限制数字范围
(\d*\,?\d{2}?){1}$
至于我能理解它允许与2位小数的数字。
我需要修改它:
- 数必须介于0 - 1.000.000。 (从零到一百万)。
- 该数字可能有或没有2位小数。
- 该值不能为负值。
- 逗号(
,
)是小数点分隔符。 - 不应该允许任何千分隔符。
我正在修改正则表达式验证控件。 此刻正则表达式如下:Modyfying正则表达式来限制数字范围
(\d*\,?\d{2}?){1}$
至于我能理解它允许与2位小数的数字。
我需要修改它:
,
)是小数点分隔符。这个怎么样
^(?:\d{1,6}(?:\,\d{2})?|1000000)$
它接受1个6位,并用2位OR “1000000” 的可选部分之间。
它允许数字从零开始! (001将被接受)
^
锚正则表达式到字符串的开始
$
锚正则表达式到字符串
(?:)
的端部是一个非捕获组
^(([0-9]|([1-9][0-9]{1,5}))(\.[0-9]{1,2})?)|1000000$
试试这个正则表达式:
^(((0|[1-9]\d{0,5})(\,\d{2})?)|(1000000(\,00)?))$
它接受如下数字:"4", "4,23", "123456", "1000000", "1000000,00"
, 但不接受:",23", "4,7", "1000001", "4,234", "1000000,55"
。
如果你想正是两位小数只接受号码,使用这个表达式:
@Tim,是的,我注意到你后面的这5秒:)更正了 –
现在是可选的。但老wersion也工作(它使用替代'|'没有任何'?') –
哦,我明白了。我忽略了管道角色。但现在好多了。最后一个问题:这个正则表达式允许'1000000.99',这可能是或不是所希望的。可能不是,但仍然是+1。 –
这是不是一个很好的(甚至是正确的)正则表达式。我宁愿重写它,也不愿修改它。您确定要使用逗号作为小数点分隔符吗?你想允许(或甚至要求)点数千分隔符? –
数字“可以”有或必须有2位小数? –
哪一点证明有问题?你看过任何“相关”的帖子吗?这不是StackOverflow的新问题! – Johnsyweb