Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript:如何使用正则表达式从url提取国家代码_Javascript_Regex - Fatal编程技术网

javascript:如何使用正则表达式从url提取国家代码

javascript:如何使用正则表达式从url提取国家代码,javascript,regex,Javascript,Regex,url中有国家代码,我需要通过正则表达式和javascript提取 所以我可能的url是 我尝试了这些代码,但正则表达式适用于特定类型的url var url = "http://example.com/gb/index.aspx"; //Get the language code var countrycode = /com\/([^\/]+)/.exec(url)[1]; 当url看起来像时,上面的代码起作用,但当url看起来像或时,上面的代码就不起作用。所以请告诉我我需要使用哪个正

url中有国家代码,我需要通过正则表达式和javascript提取

所以我可能的url是

我尝试了这些代码,但正则表达式适用于特定类型的url

var url = "http://example.com/gb/index.aspx";
//Get the language code
var countrycode = /com\/([^\/]+)/.exec(url)[1];
当url看起来像时,上面的代码起作用,但当url看起来像时,上面的代码就不起作用。所以请告诉我我需要使用哪个正则表达式,它可以从上述3种不同的url中提取国家代码。需要一些提示。谢谢

^.{8}[^\/]*\/([^\/]*)

  • ^
    :开始时锚定
  • {8}
    :跳过前8个字符(http://)
  • [^\/]
    :匹配除“/”以外的任何字符
  • \/
    匹配其后的第一个斜杠
  • ([^\/]*)
    :创建一个新组并匹配除“/”以外的任何字符(这是国家代码)
var url=[
"http://example.com/gb/index.aspx",
"http://localhost:2020/gb/index.aspx",
"http://example:2020/gb/index.aspx"
];
var rxGetCountryCode=/^.{8}[^\/]*\/([^\/]*)/;
forEach(函数(str){
console.log(rxGetCountryCode.exec(str)[1]);

});可能的帮助:请尝试
location.pathname.split('/')[1]
。在这个页面中,返回
“questions”
如果国家总是在域后,就像这样,charliefl的建议是有效的:它将数组元素中的字符串拆分为
/
字符。您需要该数组的第二个元素。
a.split(“/”[3]
如果它始终是两个字母的县代码,请尝试这样做:`为了完整性,我在示例中添加了其他URL。我还在
[^\/]
之后添加了一个解释斜杠的项目;OP似乎明白你在做什么,但以防万一将来有人发现你不懂正则表达式。