Мне трудно поверить, что этого не задавали, но я не могу найти никаких ссылок нигде. Мне нужно добавить фрагмент хэш-кода URI и обновить значение, если оно уже находится в хеше. В настоящее время я могу добавить хеш, но мое регулярное выражение не появляется, если оно существует, поэтому оно добавляет другое вместо обновления.Обновить uri hash javascript
setQueryString : function() {
var value = currentPage;
var uri = window.location.hash;
var key = "page";
var re = new RegExp("([#&])" + key + "=.*#(&|$)", "i");
var separator = uri.indexOf('#') !== -1 ? "&" : "#";
if (uri.match(re)) {
return uri.replace(re, '$1' + key + "=" + value + '$2');
}
else {
return uri + separator + key + "=" + value;
}
},
Также, если это может быть сделано любым чистящим средством при сохранении других значений/хэшей url, это было бы здорово.
пример ввода в соответствии с просьбой
Начиная Uri значение: www.example.com # страница = 1 (или не #page вообще)
затем щелчком "следующей странице" setQueryString получает так что значения будут равны:
var value = 2;
var uri = '#page1'
var key = 'page'
Таким образом, надежный выход будет «# page2».
Можете ли вы привести пример ввода, который вы тестируете –
Здесь вы задаете несколько вопросов: нужно получить регулярное выражение для захвата определенного шаблона, другое - чтение и обновление текущего значения фрагмента страницы (хэша). Я предлагаю вам начать с выделения проблемы регулярного выражения, определить различные случаи и не-случаи (примеры строк) для тестирования и [читать] (https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions) на регулярные выражения в JS. –
@TomasLangkaas Я не думаю, что это действительно несколько вопросов, когда одно (регулярное выражение) является явной причиной, по которой другой не работает. Я сказал, что уже могу обновить хеш только, что регулярное выражение, похоже, не улавливается, если оно уже существует, что позволяет мне обновить его. Общий хеш-вопрос здесь только для того, чтобы обеспечить контекст и выявить лучшие/альтернативные маршруты. – DasBeasto