如何知道用户在JavaScript中输入哪种类型的变量?

问题描述 投票:0回答:2

我试图创建一个从用户那里接收数据并通过串连(如果是字符串的话)或通过将结果求和(如果输入的数据是整数)作为结果来组合这样的数据的函数。我的主要问题是,我不知道如果我对JavaScript使用的if语句根据用户输入的数据执行什么条件。

这是我最后发明的代码来解决此类问题

function GetFullName() {
            var first = document.getElementById('FirstName').value;
            var last = document.getElementById('LastName').value;

            if (first == "string" || last == "string") {               
                document.getElementById('FullName').value = first + " " + last;

            } else {
                var first = parseInt(document.getElementById('FirstName').value);
                var last = parseInt(document.getElementById('LastName').value);

                document.getElementById('FullName').value = first + last;
               
            }
            document.getElementById('FirstName').focus();
        }
<form>
        First Name <input type="text" id="FirstName" />
        Last Name <input type="text" id="LastName" />
        <input type="button" value="submit" onclick="GetFullName()" />
        <input type="reset" value="reset" />
        <br />
        Full Name <input type="text" id="FullName" />
    </form>
javascript function variables var
2个回答
2
投票

当获得元素的值时,它将始终是字符串,

您可以通过typeof first检查变量类型

对于您的特定问题,如果您想检查用户是否输入了整数,则必须使用isNaN

if(isNaN("123")) {

} else {
   //this executes
}

所有新代码将全部是:

if (isNaN(first) || isNaN(last)) {
    document.getElementById('FullName').value = first + " " + last;
} else {
    document.getElementById('FullName').value = parseInt(first) + parseInt(last);
}

0
投票

除非JavaScript专门指定输入类型,即<input type="number" >,否则所有输入值都是JavaScript中的字符串。

如果可以在JavaScript中检查变量的类型,则应使用typeof运算符。

例如


const bool = true

If(typeof bool === "string") {
console.log("it is a Boolean") 
} else {
console.log(`it is not a string it is ${typeof bool}`)
}
© www.soinside.com 2019 - 2024. All rights reserved.