我正在尝试从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 ?
答案 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