Получите параметры URL от строки в.NET

Если вы управляете строкой, попробуйте следующее:

var str = `
<link href="http://b2b.ap/css/jquery-ui/jquery-ui.css" rel="stylesheet">
`;

var pattern = /<link.+?href=\"(.+\.css)\".*?>/;

var match = str.match(pattern);

console.log(match[1]);

220
задан Kevin Panko 11 July 2014 в 08:31
поделиться

5 ответов

Используйте статичный ParseQueryString метод System.Web.HttpUtility класс, который возвращается NameValueCollection.

Uri myUri = new Uri("http://www.example.com?param1=good&param2=bad");
string param1 = HttpUtility.ParseQueryString(myUri.Query).Get("param1");

документация Проверки в http://msdn.microsoft.com/en-us/library/ms150046.aspx

459
ответ дан Matt Bishop 23 November 2019 в 04:07
поделиться

Используйте Отражатель.NET для просмотра FillFromString метод System.Web.HttpValueCollection. Это дает Вам код, который ASP.NET использует для заполнения Request.QueryString набор.

2
ответ дан SharpC 23 November 2019 в 04:07
поделиться

Похож на Вас, должен циклично выполниться по значениям myUri.Query и проанализировать его оттуда.

 string desiredValue;
 foreach(string item in myUri.Query.Split('&'))
 {
     string[] parts = item.Replace('?', '').Split('=');
     if(parts[0] == "desiredKey")
     {
         desiredValue = parts[1];
         break;
     }
 }

я не использовал бы этот код, не тестируя его на наборе уродливых URL как бы то ни было. Это могло бы повредиться на некоторых/всех из них:

  • hello.html?
  • hello.html?valuelesskey
  • hello.html?key=value=hi
  • hello.html?hi=value?&b=c
  • и т.д.
12
ответ дан SharpC 23 November 2019 в 04:07
поделиться

Это, вероятно, что Вы хотите

var uri = new Uri("http://domain.test/Default.aspx?var1=true&var2=test&var3=3");
var query = HttpUtility.ParseQueryString(uri.Query);

var var2 = query.Get("var2");
46
ответ дан Sergej Andrejev 23 November 2019 в 04:07
поделиться

Для тех, кто хочет перебрать все строки запроса из строки

        foreach (var item in new Uri(urlString).Query.TrimStart('?').Split('&'))
        {
            var subStrings = item.Split('=');

            var key = subStrings[0];
            var value = subStrings[1];

            // do something with values
        }
0
ответ дан 23 November 2019 в 04:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: