#javascript #regex #url #mod-rewrite
#javascript #регулярное выражение #url #мод-перезапись
Вопрос:
Я пытаюсь получить параметр URL с помощью javascript, чтобы я мог передать параметр в Google maps
Проблема в том, что я использую mod rewrite для URL
www.mysite.com/1/my-event
вместо
www.mysite.com/mypage.php?id=1amp;name=my-event
Я пытался создать оповещение, но оно выдается пустым
Вот функция javascript, которая будет работать, если я не перепишу URL
function gup( name ){
name = name.replace(/[[]/,"\[").replace(/[]]/,"\]");
var regexS = "[\?amp;]" name "=([^amp;#]*)";
var regex = new RegExp( regexS );
var results = regex.exec( window.location.href );
if( results == null )
return "";
else
return results[1];
}
Комментарии:
1. JS работает на стороне клиента. URL, с которым он должен работать, — это URL, который вы видите в адресной строке. Перезапись на стороне сервера с параметрами запроса не видна JS, если только перезапись на стороне сервера не приводит к перенаправлению клиента на перезаписанный URL.
Ответ №1:
Переписанный формат со строкой запроса недоступен для вашего JavaScript.
Вместо этого вам придется извлечь значение из location.pathname
( /1/my-event
в вашем примере):
var params = window.location.pathname.split('/').slice(1); // ["1", "my-event"]
var id = params[0];
var name = params[1];
Комментарии:
1. Спасибо … я нашел нечто подобное минуту назад
Ответ №2:
Просто разделите URL на /
символы и возьмите последние элементы в результирующем массиве, сопоставив их с ожидаемыми именами.
Комментарии:
1. Используйте строковую
split()
функцию JS.