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(使用前将#替换为@)