需要一个Javascript正则表达式来匹配URL中的语言参数

时间:2017-11-17 14:42:38

标签: javascript regex

我不熟悉正则表达式,但我找不到适合我案例的解决办法。 我的网站使用这样的网址:

(http(s)://www.)website.com/en/someURL
(http(s)://www.)website.com/anotherURL
(http(s)://www.)website.com/de/anotherURL

如果访问website.com/someURLwebsite.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/

2 个答案:

答案 0 :(得分:1)

这个正则表达式将起作用:

^((https?)?\:\/\/www\.)?website\.com(\/((de|en)\/?)?)?$

如果你想在[https://regex101.com/][1]上进行一些单元测试,你应该删除开头和结尾的^和$,否则只有你只使用一行才能看到正面结果。

对于测试你可以使用它(如果你想要你可以添加一些行):

https://www.website.com/en
http://www.website.com/en/
https://www.website.com/
https://www.website.com
https://www.website.com/de
https://www.website.com/de/

答案 1 :(得分:1)

你只需要将字母数量限制为两个,然后就可以得到语言\w{2}

https?\:\/\/www\.website\.com\/((\w{2})\/?$|(\w{2})\/)

e.g。 https://regex101.com/r/SCbDyY/2