如何用JavaScript校验数值是否在指定范围?两种尝试方案均失效
解决JavaScript数值范围校验的问题
嘿,我来帮你排查下这两个方案的问题,然后给你正确的实现方式~
先说说你两个方案里的错误
方案1的问题
你用了in_array(num, 1,6),但JavaScript里根本没有in_array这个函数哦,这是PHP里用来检查元素是否在数组中的方法。而且你的需求是判断数值是否在连续范围里,也不适合用数组包含的逻辑来做。
方案2的问题
这里有好几个小错误:
- 把大于等于的运算符写反了:你写的
num =>1是JavaScript里箭头函数的语法,正确的大于等于应该是>= - 用了HTML转义后的字符
&&,在JS代码里要直接写&&才是逻辑与运算符 - 字符串引号没有闭合:
alert('this number is okay);和alert('this number is not within the range);都少了结尾的单引号,会导致语法报错
正确的实现方式
基础版直接判断
最直接的写法,修正所有语法错误后:
var num = 9; if (num >= 1 && num <= 6) { alert('this number is okay'); } else { alert('this number is not within the range'); }
封装成复用函数(推荐)
如果需要多次判断不同数值的范围,可以封装成一个函数,用起来更方便:
// 定义一个判断数值是否在范围内的函数 function isNumberInRange(num, min, max) { // 返回布尔值:num是否在[min, max]区间内 return num >= min && num <= max; } var num = 9; if (!isNumberInRange(num, 1, 6)) { alert('this number is not within the range'); }
这样就能正常运行,准确判断数值是否在你指定的1到6范围内啦~
内容的提问来源于stack exchange,提问作者Markjames11
相关产品推荐
相关产品推荐

