Sum代码无法正常工作

时间:2015-12-30 02:22:28

标签: javascript

我正在尝试从www.domain1.com重定向到www.domain2.com获取实际的域名。

我们的页面是www.domain1.com:

  var domainName = window.location.host;
  var domainNumber =  domainName.substr(10, 1);
  var finalDomain = (domainNumber+1);

如果我在屏幕上打印finalDomain,我 11 。因此,我的重定向不起作用。 我如何domainNumber 1 ,所以我 2 而不是 11

4 个答案:

答案 0 :(得分:0)

substr方法会返回一个字符串,而不是数字。所以你得到"1",而不是1

当您执行"1"+1时,您将获得"11"

在添加操作之前使用parseInt()方法将"1"转换为1

var finalDomain = parseInt(domainNumber)+1;

答案 1 :(得分:0)

这个功能应该可以做到parseInt

  

将字符串转换为整数。

var finalDomain = parseInt(domainNumber) + 1;

您遇到的问题是因为在javascript“1”+ 1中是“11”。因此,您需要将字符串“1”转换为int,以便之后将其添加1。

在这里自己测试:

alert("1" + 1 === "11")

alert(1 + 1 === 2)

答案 2 :(得分:0)

domainNumber是一个字符串,而不是一个数字,所以当你加1时,你实际上连接字符串" 1"到一个字符串的末尾" 1"制作" 11"。您需要使用parseInt()函数将其转换为数字,如下所示:

var domainNumber = parseInt(domainName.substr(10, 1), 10);

注意:传递给parseInt()的第二个参数表示该字符串是十进制的(基数为10)。现在domainNumber是一个数字而不是一个字符串,所以如果你尝试添加一个数字,你就会得到2.

var finalDomain将是一个数字,除非您通过调用toString()将其设置为字符串:

var finalDomain = (domainNumber + 1).toString() - 如果你这样做,finalDomain将是一个包含值" 2"的字符串。

希望这会有所帮助。

答案 3 :(得分:-1)

试试这个

var domainName = window.location.host;
var domainNumber =  domainName.substr(10, 1);
domainNumber = parseInt(domainNumber);
var finalDomain = (domainNumber+1);

你需要解析你的domainNumber变量为整数类型才能进行添加。 见http://www.w3schools.com/jsref/jsref_parseint.asp