需要Javascript正则表达式来匹配URL中的语言参数
我不熟悉正则表达式,也没有找到适合我的解决方案。 我的网站使用以下网址:需要Javascript正则表达式来匹配URL中的语言参数,javascript,regex,Javascript,Regex,我不熟悉正则表达式,也没有找到适合我的解决方案。 我的网站使用以下网址: (http(s)://www.)website.com/en/someURL (http(s)://www.)website.com/anotherURL (http(s)://www.)website.com/de/anotherURL 如果访问了website.com/someURL,website.com/或website.com,将加载默认语言 我需要一个只允许这些特定语言代码的正则表达式,区分大小写并不重要:
(http(s)://www.)website.com/en/someURL
(http(s)://www.)website.com/anotherURL
(http(s)://www.)website.com/de/anotherURL
如果访问了website.com/someURL
,website.com/
或website.com
,将加载默认语言
我需要一个只允许这些特定语言代码的正则表达式,区分大小写并不重要:
(http(s)://www.)website.com/en
(http(s)://www.)website.com/en/
(http(s)://www.)website.com/
(http(s)://www.)website.com
(http(s)://www.)website.com/de
(http(s)://www.)website.com/de/
此正则表达式将在以下情况下工作:
^((https?)?\:\/\/www\.)?website\.com(\/((de|en)\/?)?)?$
如果您想对[进行一些单元测试,您应该删除开头和结尾的“^”和$,否则只有在使用一行时才会看到肯定的结果
对于测试,您可以使用此选项(如果需要,可以添加一些行):
此正则表达式将在以下情况下工作:
^((https?)?\:\/\/www\.)?website\.com(\/((de|en)\/?)?)?$
如果您想对[进行一些单元测试,您应该删除开头和结尾的“^”和$,否则只有在使用一行时才会看到肯定的结果
对于测试,您可以使用此选项(如果需要,可以添加一些行):
您只需将字母数限制为两个,就可以得到语言
\w{2}
https?\:\/\/www\.website\.com\/((\w{2})\/?$|(\w{2})\/)
e、 g.只需将字母数限制为两个,就可以得到语言
\w{2}
https?\:\/\/www\.website\.com\/((\w{2})\/?$|(\w{2})\/)
e、 g.他需要一个正则表达式来解析url中的语言代码…如果没有匹配项,它将禁止来自…的某些代码?总而言之,他不知道如何使用正则表达式,并希望为他完成工作。@Kuzma我建议使用,javascript模式,并使用右下角的“快速参考”当然,在阅读了关于正则表达式的教程之后。正则表达式101真是太棒了。你可以将你的测试用例粘贴到底部和窗格中,并在填充正则表达式时观察匹配的内容。玩它,然后回来,当你有一些东西但你被某些特定的东西卡住时。他需要一个正则表达式来解析语言url中的代码…如果没有匹配项,它将禁止来自…的某些代码?总而言之,他不知道如何使用正则表达式,并希望为他完成工作。@Kuzma我建议使用,javascript模式,并使用右下角的“快速参考”当然,在阅读了关于正则表达式的教程之后。正则表达式101真是太棒了。你可以将你的测试用例粘贴到底部和窗格中,并在填充正则表达式时观察匹配的内容。玩它,然后回来,当你有一些东西,但你仍停留在某些特定的东西上时。谢谢!稍微改进一下:我的框架不需要检查此部分
(http(s)://www.website.com
。我已将您的解决方案简化为((de|en)\/?)?
,但以这种方式它与网站的根目录不匹配。换句话说,website.com/和website.com
将不匹配。我需要一个额外的规则来匹配null参数和网站地址末尾的/
。我在^((https?\:\/\/www\)后面打了一个问号因此,第一部分是可选的,website.com/和website.com将匹配。谢谢!稍微改进一下:我的框架不需要检查这个部分(http(s)://www.website.com
。我已将您的解决方案简化为((de|en)\/?)?
,但以这种方式它与网站的根目录不匹配。换句话说,website.com/和website.com
将不匹配。我需要一个额外的规则来匹配null参数和网站地址末尾的/
。我在^((https?\:\/\/www\)后面打了一个问号因此,第一部分是可选的,website.com/和website.com将匹配。只有一个小问题与此不匹配:website.com/和website.com
@Kuzma.com(\/(\w{2})\/?(\w{2})\/?
)只有一个小问题与此不匹配:website.com/和website.com
@Kuzma.com(\/(\w{2})\/?$|(\w{2}\/)?)?
:)