Получение параметра из переписанного URL с помощью javascript

#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.