使用正则表达式验证输入中是否包含非数字

2023-12-19

function validInteger(theNumber){
    var anyNonDigits = new  RegExp('\D','g');
    if(parseInt(theNumber)&&!anyNonDigits.test(theNumber)){
        return true;
    }else{
        return false;
    }
}

上面是我编写的用于验证某些输入的函数。我想要所有正整数。我面临的问题是 RegExp 对象。这看起来应该非常简单,但由于某种原因它不起作用。

例如,如果我通过“f5”,我会得到 true,但如果我通过“5f”,我会得到 false。我在传递负数时也遇到问题。即使我在将变量传递到 RegExp 之前对其进行字符串化, -3 也不会被捕获。我可以通过添加 ' 来解决这个问题&&parseInt(theNumber)>0' 在我的 if 语句中,但我觉得 RegExp 也应该抓住这一点。提前致谢!


Simply:

function validInteger(theNumber){    
    return theNumber.match(/^\d+$/) && parseInt(theNumber) > 0;
}

现场演示 http://jsfiddle.net/pCRQQ/

或者甚至更简单regex仅按照@Eric的建议:

return /^[0-9]\d*$/.test(theNumber);

现场演示 http://jsfiddle.net/pCRQQ/1/

Update:

An excellent cheat sheet. http://www.addedbytes.com/download/regular-expressions-cheat-sheet-v2/png/ The link died after 5 years, sorry.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用正则表达式验证输入中是否包含非数字 的相关文章

随机推荐