这更多是出于我自己的好奇心。我有一个可行的解决方案,但我很好奇是否有人对为什么一种解决方案有效而另一种无效。
我需要一个正则表达式来验证用户是否输入了有效数字。一些例子:
87
887.65
-87
-87.65
我的第一次尝试是这样的:
^(\-?[0-9]+(\.[0-9]*)?)$
除了接受诸如“7x”、“1a”、“89p”之类的字符串外,它工作得很好。我的新解决方案如下,它似乎工作得很好:
^(\-?[0-9]+(\.[0-9]+)?)$
第二个(注意“+”)稍微简洁一些,但我不明白为什么第一个接受字母而第二个不接受。有人看到我错过了什么吗?