Удаление букв, расположенных между определенной строкой
Я хочу убедиться, что URL, который я получаю от window.location
уже не содержит определенного идентификатора фрагмента. Если это так, я должен удалить его. Поэтому я должен найти URL-адрес и найти строку, которая начинается с mp-
и продолжается до конца URL или следующего #
(на всякий случай URL содержит более одного идентификатора фрагмента).
примеры входов и выходов:
www.site.com/#mp-1 --> www.site.com/
www.site.com#mp-1 --> www.site.com
www.site.com/#mp-1#pic --> www.site.com/#pic
мой код:
(это, очевидно, не работает правильно)
var url = window.location;
if(url.toLowerCase().indexOf("#mp-") >= 0){
var imgString = url.substring(url.indexOf('#mp-') + 4,url.indexOf('#'));
console.log(imgString);
}
есть идеи, как это сделать?
4 ответов
использовать регулярные выражения:
var url = window.location;
var imgString = url.replace(/(#mp-[^#\s]+)/, "");
Он удаляет из URL хэш все от mp-
в char перед #
.
что-то вроде этого? Для фильтрации нежелательной строки используется регулярное выражение.
var inputs = [
"www.site.com/#mp-1",
"www.site.com#mp-1",
"www.site.com/#mp-1#pic"
];
inputs = inputs.map(function(input) {
return input.replace(/#mp-1?/, '');
});
console.log(inputs);
выход:
["www.site.com/", "www.site.com", "www.site.com/#pic"]
jsfiddle: https://jsfiddle.net/tghuye75/
регулярное выражение, которое я использовал /#mp-1?/
удаляет любые строки, такие как #mp-
или #mp-1
. Для строки неизвестной длины до следующего хэштега вы можете использовать /#mp-[^#]*
, который удаляет #mp-
, #mp-1
и #mp-somelongstring
.
можно использовать .replace
для замены соответствия регулярному выражению ("#mp -", за которым следует 0 или более не-#
символы) с пустой строкой. Если это возможно, есть несколько сегментов, которые вы хотите удалить, просто добавьте g
флаг для регулярного выражения.
url = url.replace(/#mp-[^#]*/, '');
окне.местоположение имеет свойство hash so... окно.местоположение.хэш
самый примитивный способ-объявить
var char_start, char_end
и найти два " # " или один, и 2-й будет конец ввода.
С, что... ты можешь делать, что хочешь, менять окно.местоположение.хэш обычно влияет на адрес браузера.
удачи!