我如何从我创建的列表中匹配一个国家,然后如果它在列表中则采取行动? (GeoIP 重定向)

Posted

技术标签:

【中文标题】我如何从我创建的列表中匹配一个国家,然后如果它在列表中则采取行动? (GeoIP 重定向)【英文标题】:How do I match a country from a list I create and then act if it is inside the list? (GeoIP redirect) 【发布时间】:2014-11-24 00:56:23 【问题描述】:

这是我的代码。这一个有效,但它一次只检查一个位置。

<script>
jQuery.ajax(  
  url: '//freegeoip.net/json/', 
  type: 'POST', 
  dataType: 'jsonp',
  success: function(location) 
    // If the visitor is browsing from UK.
    if (location.country_code === 'UK') 
    // Redirect him to the UK Store store.
      window.location.href = 'http://www.domain.co.uk';
    
  
 );
</script>

这是我尝试过的:

<script>
jQuery.ajax(  
  url: '//freegeoip.net/json/', 
  type: 'POST', 
  dataType: 'jsonp',
  success: function(location) 
    // If the visitor is browsing from UK, Germany, France, and Sweden.
    if (location.country_code === 'UK || DE || FR || SE') 
    // Redirect him to the UK Store store.
      window.location.href = 'http://www.domain.co.uk';
    
  
 );
</script>

但它不起作用。我对 javascript 的经验并不丰富,所以我不能 100% 确定如何进行这项工作。我假设我将能够创建一个变量(而是一个数组),命名为“国家”的留置权并使其等于那些国家,如var countries = ["UK", "DE", "FR", "SE"],然后让脚本检查该人的当前位置是否是阵列中的这些国家之一。但是,我不知道该怎么做。

救命!

【问题讨论】:

【参考方案1】:
location.country_code === 'UK || DE || FR || SE'

检查字符串 'UK ||德 ||法国 || SE',在你的情况下永远不会是真的。

这将起作用:

if (location.country_code == 'UK' || location.country_code == 'DE' || location.country_code == 'FR' || location.country_code == 'SE') 
// more awesome code 

正如您所描述的,另一种方法是创建一个数组并检查该条目是否存在。这就像:

虚拟代码

var countrys = ['DE','UK','SE','FR'];
var a = 'DE';
if (a.indexOf(countrys)) 
    alert('It is');

【讨论】:

以上是关于我如何从我创建的列表中匹配一个国家,然后如果它在列表中则采取行动? (GeoIP 重定向)的主要内容,如果未能解决你的问题,请参考以下文章

匹配值列表中的字符串并创建新行

Python Pandas Regex:在列中搜索带有通配符的字符串并返回匹配项[重复]

如何在列中划分句点

NSManagedObject 上的 Swift 扩展

如果它们与使用 vba 的条件匹配,则在列中查找最小值和中值

颤振让孩子在列内匹配另一个孩子的宽度