javascript - js如何判断一个方法的参数为数字确保方法体里的eq正确执行
高洛峰
高洛峰 2017-04-11 11:16:35
[JavaScript讨论组]

假设有个方法

/* index为数字或字符串数字 */
function test(index) {
    // index验证预处理

    return $('input').eq(index).val();
}

如何确保eq正确执行?

我根据大家的答案写了个结果,应该长这样:

function test(index) {
    /^[+-]?\d+$/.test(index) ? index = parseInt(index) : index = 0;
    return $('input').eq(index).val();
}

大家看看如何?另外大家回答都差不多,所以采纳第一个回答的人了,3q!

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(4)
伊谢尔伦

如果是判断是否是任意数字,那么:

typeof index === 'number' && Number.isInfinity(index);

考虑到你需要的是自然数,应该这样:

Number.isInteger(index) && index >= 0

更新:

题主修改了问题,index可以是数字或字符串数字。那么最好的方法就是用正则表达式了,大概是这样的:

/(0|[1-9][0-9]+)/
伊谢尔伦

判断参数是否为数字?
做个判断typeof index = 'number'不就好了吗?
是数字就执行,不是数字就return退出函数

天蓬老师

也就说你要确保index的值为正整数,当然包括0

天蓬老师

可以使用以下判断:

var indexNum= parseInt(index);
if(isNaN(indexNum) || indexNum<0)return '';
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号