Извлечение значения параметра из url с использованием регулярных выражений
Это должно быть очень просто (когда вы знаете ответ). Из этот вопрос
Я хочу дать опубликованное решение попробовать. Мой вопрос:
Как получить значение параметра для заданного URL с помощью регулярных выражений JavaScript?
У меня есть:
http://www.youtube.com/watch?v=Ahg6qcgoay4
Мне нужно:
Ahg6qcgoay4
Я пробовал:
http://www.youtube.com/watch\\?v=(w{11})
Но: я сосать...
Ответы
Ответ 1
У вас почти было это, просто нужно избегать специальных символов регулярных выражений:
regex = /http\:\/\/www\.youtube\.com\/watch\?v=([\w-]{11})/;
url = 'http://www.youtube.com/watch?v=Ahg6qcgoay4';
id = url.match(regex)[1]; // id = 'Ahg6qcgoay4'
Изменить: Исправить для регулярного выражения soupagain.
Ответ 2
Почему вы не берете строку и не разбиваете ее?
Пример на URL
var url = "http://www.youtube.com/watch?p=DB852818BF378DAC&v=1q-k-uN73Gk"
вы можете сделать раскол как
var params = url.split("?")[1].split("&");
Вы получите массив строк с параметрами как пары значений имени с "=" в качестве разделителя.
Ответ 3
v - параметр запроса, технически вам нужно рассмотреть случаи ala: http://www.youtube.com/watch?p=DB852818BF378DAC&v=1q-k-uN73Gk
В .NET я бы рекомендовал использовать System.Web.HttpUtility.ParseQueryString
HttpUtility.ParseQueryString(url)["v"];
И вам даже не нужно проверять ключ, так как он вернет значение null, если ключ не находится в коллекции.
Ответ 4
Не тестировалось, но это должно работать:
/\?v=([a-z0-9\-]+)\&?/i
Ответ 5
Я знаю, что вопрос старый и уже ответил, но это также может быть решением
\b[\w-]+$
и я проверил эти два URL
http://www.youtube.com/watch?v=Ahg6qcgoay4
https://www.youtube.com/watch?v=22hUHCr-Tos
DEMO
Ответ 6
Я использую отдельные пользовательские функции, которые получают все URL-параметры и URL-адреса.
Для параметров URL (которая является заключительной частью строки URI, http://domain.tld/urlpart/ ? X = a & y = b
function getUrlVars() {
var vars = {};
var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
vars[key] = value;
});
return vars;
}
Вышеуказанная функция вернет массив, состоящий из переменных URL.
Для частей или функций URL (http://domain.tld/ urlpart/? x = a & y = Ь
Я использую простой разделение uri,
function getUrlParams() {
var vars = {};
var parts = window.location.href.split('/' );
return parts;
}
Вы даже можете объединить их обоих, чтобы иметь возможность использовать один вызов на странице или в javascript.