实数的ng-pattern正则表达式

时间:2016-04-28 13:00:17

标签: javascript angularjs regex ng-pattern

这对我自己的好奇心来说更像一个问题。我有一个有效的解决方案,但是我很好奇是否有人能够了解为什么一个解决方案有效,而另一个解决方案没有。

我需要一个正则表达式来验证用户是否输入了有效数字。一些例子:

87

887.65

-87

-87.65

我的第一次尝试看起来像这样:

^(\-?[0-9]+(\.[0-9]*)?)$

除了'7x','1a','89p'这样的字符串被接受之外,它的效果很好。我的新解决方案如下,它似乎工作正常:

^(\-?[0-9]+(\.[0-9]+)?)$

第二个(注意'+')稍微简洁,但我不明白为什么第一个接受字母而第二个不接受。有人看到我错过的东西吗?

1 个答案:

答案 0 :(得分:1)

"。"在你的正则表达式中是为了角色"。"从字面上看,它应该被转义" \。",否则它将匹配任何字符。在第二个正则表达式中," +"运算符要求至少一个小数,因此它不匹配" 7x",但它将匹配" 7x1",请参阅此Regex demo