后盾js验证var val = data.obj.val() * 1;这里*1和下边的opt[0] * 1是什么意思。
//数字"num":function(data){varstat=true;//内容不为空时验证if(data.obj.val()){varopt=options[dat...
//数字
"num": function (data) {
var stat = true;
//内容不为空时验证
if (data.obj.val()) {
var opt = options[data.name].rule["num"].split(/\s*,\s*/);
var val = data.obj.val() * 1;
//验证表单
stat = val >= opt[0] * 1 && val <= opt[1] * 1;
//验证结果处理,提示信息等
method.call_handler(stat, data);
}
return stat;
} 展开
"num": function (data) {
var stat = true;
//内容不为空时验证
if (data.obj.val()) {
var opt = options[data.name].rule["num"].split(/\s*,\s*/);
var val = data.obj.val() * 1;
//验证表单
stat = val >= opt[0] * 1 && val <= opt[1] * 1;
//验证结果处理,提示信息等
method.call_handler(stat, data);
}
return stat;
} 展开
1个回答
展开全部
val()方法拿出的值一般来说是字符串, * 1 转换类型的同时做了格式校验。
chrome控制台,输入: undefined * 1,输出: NaN
输入: "//drop table order" * 1,输出: NaN
输入: "aaa" * 1,输出: NaN
输入: "" * 1,输出: 0
输入: "0.2" * 1,输出: 0.2
题目中没有给出options[data.name].rule["num"]的值,目前的信息推断不出opt[0] 和opt[1]是什么,这边的乘以1也是类型转换,经过split(/\s*,\s*/)方法得到的是字符串数组。
个人见解* 1有点黑科技,正常点用!isNaN()判断,其次还可以写个正则表达式判断。
chrome控制台,输入: undefined * 1,输出: NaN
输入: "//drop table order" * 1,输出: NaN
输入: "aaa" * 1,输出: NaN
输入: "" * 1,输出: 0
输入: "0.2" * 1,输出: 0.2
题目中没有给出options[data.name].rule["num"]的值,目前的信息推断不出opt[0] 和opt[1]是什么,这边的乘以1也是类型转换,经过split(/\s*,\s*/)方法得到的是字符串数组。
个人见解* 1有点黑科技,正常点用!isNaN()判断,其次还可以写个正则表达式判断。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询