这个代码片段不是用于检查应该返回false的数字吗?

时间:2011-07-19 05:45:10

标签: javascript

这只是检查一个字符串中的数字..当我希望给我一个假的时候,它返回true。 我怎么能解决这个问题以及为什么它会让我回归真实?

  <script type="text/javascript">
      function test()
var str2 ="s123s";
var reg3 =/\d/;
alert(reg3.test(str2));
}
</script>

4 个答案:

答案 0 :(得分:2)

如果字符串中有一个数字,你的正则表达式正在测试 - 如果字符串只包含数字,则不是。


如果你要检查一下

的字符串
  • 以数字开头,
  • 包含一个或多个数字 - 没有别的,
  • 以数字结尾

你应该将你的正则表达式改为:

/^\d+$/

答案 1 :(得分:2)

您的正则表达式\d会检查是否有数字。使用\D检查是否存在非数字并返回该测试的否定。

答案 2 :(得分:1)

正则表达式是“包含数字”,因此它应该提醒true

如果您想要“只包含数字”,那么您需要:

/^\d*$/   /* Start of string, zero or more numbers, end of string */

或者:

!/\D/.test(str2)   /* Test for presence of non-numbers, then NOT the result */

答案 3 :(得分:1)

实际上,如果你想让它只包含数字,那么这是正确的:

/^\d+$/

以下内容也允许空字符串:

/^\d*$/