Javascript正则表达式:仅限数字和无空格

7
我很惊讶在互联网上没有找到这个问题的答案。是否有一个正则表达式可以验证字符串中仅包含数字,包括以0开头且不包含空格的数字?以下是我使用的示例:
  function ValidateNumber() {

  var regExp = new RegExp("/^\d+$/");
  var strNumber = "010099914934";
  var isValid = regExp.test(strNumber);
  return isValid;
}

但是isValid的值仍然被设置为false。


1
你能展示一下你想测试的内容的例子吗?只需要/^\d+$/就可以了... - Sergio
1
你可以分享一下你尝试过的吗? - Sanj
2
^\d+$。我也很惊讶你没有尝试写这个正则表达式。 - rock321987
1
@Scarnet,我在我的答案中添加了你错过的一个细节。字符串应该像这样双重转义:"^\\d+$" - Sergio
1
它在互联网上。它可以在任何描述正则表达式的页面中找到。 - user663031
1个回答

19

您可以使用/^\d+$/

这意味着:

  • ^ 表示字符串开头
  • \d+ 表示一个数字,出现一次或多次
  • $ 表示字符串结尾

这样可以强制匹配从字符串开头到结尾的数字。

这里有一个例子: https://regex101.com/r/jP4sN1/1
jsFiddle 上的代码示例: https://jsfiddle.net/gvqzknwk/


注意:

如果您正在使用RegExp构造函数,则需要双重转义\选择器中的\,因此传递给RegExp构造函数的字符串必须是"^\\\\d+$"


因此,您的函数可能是:

function ValidateNumber(strNumber) {
    var regExp = new RegExp("^\\d+$");
    var isValid = regExp.test(strNumber); // or just: /^\d+$/.test(strNumber);
    return isValid;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接