Javascript:Regex获取URI的特定部分

Javascript:Regex获取URI的特定部分,javascript,regex,Javascript,Regex,是否有一行javascript可以从window.location.pathname返回下面突出显示的URI的粗体部分 /竞技场/ /en/Arena/(忽略两个字母的语言代码-非集合列表) /pt br/Arena/(忽略带连字符的四字母lang代码-非集合列表) /en/竞技场/Room/(忽略URL的其他部分) 对于奖励积分,如果URI为/,我希望它返回家乡 我想在只接受一行代码作为返回函数的标记管理器中使用它,因此需要一行函数 类似地,是否有一个额外的正则表达式也可以返回上述URI的

是否有一行javascript可以从window.location.pathname返回下面突出显示的URI的粗体部分

  • /竞技场/
  • /en/Arena/(忽略两个字母的语言代码-非集合列表)
  • /pt br/Arena/(忽略带连字符的四字母lang代码-非集合列表)
  • /en/竞技场/Room/(忽略URL的其他部分)
对于奖励积分,如果URI为/,我希望它返回家乡

我想在只接受一行代码作为返回函数的标记管理器中使用它,因此需要一行函数


类似地,是否有一个额外的正则表达式也可以返回上述URI的语言代码部分:en、pt br或与这两种模式匹配的任何其他语言代码,如果不存在,则默认返回en?

使用非捕获/可选正则表达式组来查找语言代码。捕获第一组非
/
字符。如果不匹配,则设置为默认值
Home
value

var regex = /^\/(?:[a-z]{2}(?:-[a-z]{2})?\/)?([^/]+)/,
    matches = window.location.pathname.match(regex);

var page = matches ? matches[1] : 'Home';
console.log(page); // Arena

同样,您可以选择捕获语言部分:

var regex = /^\/(?:([a-z]{2}(?:-[a-z]{2})?)\/)?([^/]+)/,
    matches = window.location.pathname.match(regex);

var language = matches ? matches[1] : 'en',
    page = matches ? matches[2] : 'Home';

发布您的尝试..用作匹配语言的RegExp无法匹配不存在的部分。它不能“返回默认值”。部分能否以小写字母开头?它可以是2个字符长吗?
language
部分能否以大写字母开头?
var arr=path.split(“/”);返回(arr.length<5)?arr[arr.length-2]:arr[2]完美!正是我想要的。谢谢