正则表达式用于十进制数字验证

时间:2019-05-26 03:02:03

标签: angularjs regex

我正在文本框中添加一个用于十进制数字(4,2)的验证。我在下面的代码中尝试过,它在小数点后起作用(这意味着它限制用户在小数点后输入两位以上的数字),但并没有限制用户在小数点前输入多于4位数字。

ng-pattern-restrict="^[0-9]{0,4}+(.[0-9]{0,2})?$"

  • 有效输入:10.20
  • 有效输入:1234.23
  • 无效的输入:123456.23
  • 无效的输入:1234.23456

1 个答案:

答案 0 :(得分:2)

{0,4}的意思是“进行模式的0到4”。 +表示“一个或多个进行中的模式”,.表示“任何字符”。

因此,听起来您需要删除+(您已经在{0,4}中指定了计数)并转义.以匹配文字的小数点。

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

  • 10.20个匹配项
  • 1234.23匹配
  • 123456.23没有匹配项
  • 1234.23456没有匹配项

请记住,这不是普遍接受的验证小数的方法。例如,不同区域的小数点使用不同的符号。