[英]Using a regular expression to validate whether input has any non digits in it
function validInteger(theNumber){
var anyNonDigits = new RegExp('\D','g');
if(parseInt(theNumber)&&!anyNonDigits.test(theNumber)){
return true;
}else{
return false;
}
}
以上是我为验证一些输入而编写的函数。 我想要所有正整数。 我面临的问题是使用RegExp对象。 这似乎应该是超级简单的,但由于某种原因,它不起作用。
例如,如果我通过'f5',我会得到真的,但如果我通过'5f',我就会变错。 传递负数时我也遇到了问题。 即使我在将变量传递给RegExp之前对变量进行了字符串化,-3也不会被捕获。 我可以通过在if语句中添加' &&parseInt(theNumber)>0
'来解决这个问题,但我觉得RegExp也应该抓住它。 提前致谢!
如果没关系,请不要使用RegExp,您可以:
function validInteger(theNumber){
var number = +theNumber;
return number > -1 && number % 1 === 0;
}
假设您将0视为正整数,并且您不希望区分+0和-0。
请注意,此功能将接受任何值theNumber
可在数转换,所以不只是“串”,你可以通过数量以及课程。
简单!
function validate(num){
return (num | 0) > 0;
};
此函数仅对正整数返回“true”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.