下面这段代码是判断str是不是正整数,好像有问题,帮忙检查一下:function isNumberInt(str) { var oldstr = str; //去除数字和.之外的字符 str = str.replace(/[^\d.]/g, ""); //必须保证第一个为数字而不是. str = str.replace(/^\./g, ""); var len1 = str.length; str = str.replace(/\./g, ""); var len2 = str.length; if (len1 - len2 > 0) { return false; } str = oldstr; str = str.replace(/\./g, ""); var reg = /\D/; return str.match(reg) == null; }
时间: 2024-02-14 19:15:21 浏览: 66
使用JavaScript判断用户输入的是否为正整数(两种方法)
5星 · 资源好评率100%
这段代码的问题在于,它只能判断字符串中是否只包含数字和小数点,并不能判断是否为正整数。比如,字符串"123.45"会被判断为不是正整数。此外,这段代码还存在一些不必要的步骤,比如第五行的正则表达式替换可以省略。
以下是一个修改后的代码示例,它可以正确地判断字符串是否为正整数:
```
function isNumberInt(str) {
var reg = /^[1-9]\d*$/;
return reg.test(str);
}
```
这个正则表达式用于匹配以1-9开头,后面跟零个或多个数字的字符串,即正整数。如果匹配成功,则返回true,否则返回false。
阅读全文