gpt4 book ai didi

javascript - 使用 typeof 进行输入验证

转载 作者:行者123 更新时间:2023-12-02 21:51:01 25 4
gpt4 key购买 nike

我正在研究输入验证,我不想使用 RegExp,但我一直想知道为什么 typeof 在 if 语句中不起作用或者我的代码有什么问题

function myDom(){

var message = document.getElementById('show');
var xx = document.getElementById('demo').value;
try{
if(xx === "") throw "can not be empty";
if(typeof xx === "number") throw "can not be number";
//if(xx < 100) throw "less than hundreds!"
}catch(err){
message.innerHTML = "input " + err;
}

}

最佳答案

输入的类型始终为字符串。由于您正在与严格相等运算符(===)进行比较,因此您必须将它们转换为数字。仅当该值仅为数字时,才应使用 (isNaN) 或非空来转换该值:

var elValue = document.getElementById('demo').value;
var xx = isNaN(elValue) || elValue == '' ? elValue: Number(elValue);

演示:

function myDom(){
var message = document.getElementById('show');
var elValue = document.getElementById('demo').value.trim();
var xx = isNaN(elValue) || elValue == '' ? elValue: Number(elValue);
try{
if(xx === "") throw "can not be empty";
else if(typeof xx === "number") throw "can not be number";
else message.innerHTML = '';
//if(xx < 100) throw "less than hundreds!"
}catch(err){
message.innerHTML = "input " + err;
}
}
<input id="demo" oninput="myDom()"/>
<div id="show"></div>

关于javascript - 使用 typeof 进行输入验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60132385/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com