如果网站网址不包含任何语言代码,请采取措施

时间:2019-02-24 18:09:25

标签: c# asp.net regex args url-masking

ASP.Net C#新手在这里。我正在寻找有关构建条件的建议,以验证网站网址是否不包含任何ISO语言代码或区域子目录,例如/ us-en,/ ae-en,/ gb-en等)。

示例网址:
    •带有语言代码的网站网址-https://www.xbox.com/en-US/xbox-one?xr=shellnav
    •没有语言代码的网站网址-https://www.xbox.com/xbox-one?xr=shellnav

示例场景:
    •不能访问没有任何ISO语言代码的网站URL,并显示“找不到页面”或404错误消息。

如果建议是负面的,那就更好了-如果网站URL不包含任何ISO语言代码,它将执行语句(“找不到页面”或404错误消息)中的代码块。

1 个答案:

答案 0 :(得分:2)

只需使用此正则表达式匹配网址,

\b[a-z]{2}-[A-Z]{2}\b

Demo

如果您希望它不区分大小写,只需在正则表达式的开头附加(?i)

(?i)\b[a-z]{2}-[a-z]{2}\b

查看此C#代码,该代码显示URL是否匹配

List<string> strings = new List<string>();
strings.Add("https://www.xbox.com/en-US/xbox-one?xr=shellnav");
strings.Add("https://www.xbox.com/xbox-one?xr=shellnav");

var regex = new Regex(@"\b[a-z]{2}-[A-Z]{2}\b");

foreach (string s in strings)
{
    if (regex.Match(s).Success) {
        Console.WriteLine(s + " --> Matches");  // Write your code here if URL contains language code
    } else {
        Console.WriteLine(s + " --> Doesn't match"); // Else part if URL doesn't contains language code
    }
}

打印

https://www.xbox.com/en-US/xbox-one?xr=shellnav --> Matches
https://www.xbox.com/xbox-one?xr=shellnav --> Doesn't match