angularjs ng-pattern regex for 4 digits and 2 decimal

时间:2017-10-01 07:37:06

标签: javascript angularjs regex

我正在尝试为最多4位数的数字创建正则表达式,如果输入为小数,则必须包含2位数字 - .20而不是.1。 尝试:

ng-pattern="/^[0-9]+(\.[0-9]{1,2})?$/" //fail for 666666, .10, .1

有效输入的示例:

100.10
100
3000.10

无效的示例:

10000 //has more then 4 digits before decimal
100.1 //has only 1 digit after decimal
.10 //has no digits before decimal

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

使用{#,#}将位数限制为1到4

尝试

^[0-9]{1,4}(\.[0-9][0-9])?$

使用()?制作一个可选的两位小数部分

使用{1,2}的问题在于它允许一个或两个数字,当你真的只需要两个时。而且我假设您要强制执行如果他们有“。”的规则,它们必须有两位数?

例如

var patt = /^[0-9]{1,4}(\.[0-9][0-9])?$/i

"1011.11".match(patt)!==null
"1011.1".match(patt)!==null

返回

true
false

感谢Sebastian Proske和WiktorStribiżew

指出需要逃避.