This question already has an answer here:
Why this javascript regex doesn't work?

(1 个回答)


去年关闭。




我很惊讶我没有在互联网上找到这个。
是否有正则表达式仅验证字符串中的数字,包括以 0 开头而不是空格的数字

这是我正在使用的示例
  function ValidateNumber() {

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

但仍将 isValid 值设置为 false

最佳答案

您可以使用/^\d+$/
这意味着:

  • ^ 字符串开始
  • \d+ 一个数字,一次或多次
  • $ 字符串结束

  • 通过这种方式,您可以强制匹配仅从该字符串的开头到结尾的数字。
    示例: https://regex101.com/r/jP4sN1/1
    jsFiddle在这里: https://jsfiddle.net/gvqzknwk/

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

    所以你的功能可能是:
    function ValidateNumber(strNumber) {
        var regExp = new RegExp("^\\d+$");
        var isValid = regExp.test(strNumber); // or just: /^\d+$/.test(strNumber);
        return isValid;
    }
    

    10-05 20:43
    查看更多