无法将字符串转换为整数

时间:2018-03-26 13:19:41

标签: javascript integer

我的页面中有一个AJAX请求, .php 页面根据页面中的事件回显整数或字符串。但是,当变量到达我的实际 javascript 文件时,它就变成了字符串。例如4更改为" 4"。这使得我的程序有问题,因为我的程序必须根据responseText运行。我有一个XMLHTTPRequestObject.onload函数,其工作方式如下:

    if(typeof XMLHTTPRequest.responseText === "number"){
// do something
}

我的php脚本提供了整数或字符串的结果,如果结果是字符串,那么我可以执行该功能,但它不会发生这样的情况。我尝试使用parseInt()Number()更改变量,但随后,所有内容都会更改为数字,或者是字符串。那么,我该如何解决这个问题呢?请帮忙!

2 个答案:

答案 0 :(得分:0)

您可以尝试使用Number将字符串转换为数字。如果您收到NaN,则表示该字符串不是有效的数字,例如123notANumber,请参阅 here以获取更多信息。

if (isNaN(Number('123test')) {
  // This is a string
}
else {
  // It's a number
}

答案 1 :(得分:0)

正如评论XMLHttpRequest.responseText中所提到的,始终是一个字符串。最简单的解决方案可能是使用Number构造函数将该字符串转换为数字。如果字符串不表示整数,Number将返回NaN。所以你可以做这样的事情而不是你现在所拥有的东西:

const parsed = Number(XMLHTTPRequest.responseText);
if(isNaN(parsed)){
    //handle case where response is a string
} else {
    //handle case where response is a number
}