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