【问题标题】:Rewrite command from php to javascript将命令从 php 重写为 javascript
【发布时间】:2014-03-08 20:48:45
【问题描述】:

下面是我目前开发的代码:

$extension = pathinfo($_SERVER['SERVER_NAME'], PATHINFO_EXTENSION);

if($extension == "de")
{
echo "this is a german site";
}

上面的函数很简单,在php中运行良好,虽然我在javascript中需要它,我应该如何重写它?

【问题讨论】:

标签: javascript php


【解决方案1】:

捕获当前主机名并将其分解为一个数组:

var host = window.location.hostname.split('.');

然后检查一下:

if(host[host.length-1] === 'de'){
    alert('this is a german site');
}

您捕获的数组中的最后一项将是扩展名。

如果您不需要处理旧版浏览器(IE8 或更早版本),另一种方法是使用 lastIndexOf 函数:

if((window.location.hostname.lastIndexOf('.')+1) === 'de'){
    alert('this is a german site');
}

如果您只需要调用一次,则无需以这种方式捕获变量。

【讨论】:

  • @Wind64bit - 不要感谢我,感谢复选标记。 ;)
  • @Wind64bit 如果这个答案真的是你所需要的,那么将其标记为正确答案,它是投票箭头下的绿色对勾。如果你喜欢这个答案,那就投票吧:P
  • @HenryW - 不需要问题的要求。问一个特定的问题,得到一个特定于该问题的答案。没有范围蔓延!
  • 我同意,但如果他移民,他会恨你的:)
  • @HenryW - 如果我过度设计一个疯狂的正则表达式解决方案,他将不会像他那样讨厌我,而他将不得不在没有任何实际好处的情况下维护该解决方案。
【解决方案2】:

这应该可行:

var domain = (location.host)
var arr=domain.split(".")
extension=arr[arr.length-1]

if(extension=="de")
{
alert("this is a german site");
}

【讨论】:

  • If 或 switch 语句在 "uk" tld 上。
  • @Ko Cour 如果我正在寻找域名 e.x www.cnn.com 的“cnn”,我可以再问你一件事吗?
  • @KoCour - 感谢您复制我的确切答案,尽管以最低效率的方式。有替代品总是好的。
  • 我没有抄袭任何人,当没有答案时,我开始写我的答案。arr.length-2 很好,除非你在 co.uk 和其他人工作。
猜你喜欢
  • 1970-01-01
  • 2016-09-27
  • 1970-01-01
  • 2022-06-15
  • 1970-01-01
  • 2014-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多