Я пытаюсь проверить, если хэш в URL-адресе содержит определенное значение, прежде чем продолжить, у меня есть функция, которая работает так:
$(window).load(function () {
var hash = window.location.hash,
number = $(hash).index(),
width = 403,
final = width * number;
setTimeout(function () {
$('.news-inner-wrap').animate({
'marginLeft': "-=" + final + "px"
});
}, 1000);
});
Поэтому, если хеш - это www.website.com/#news-item-03
он будет скользить по горизонтали горизонтально до 3-й новости, это отлично работает !. Я хочу, чтобы эта функция срабатывала, хотя если хэш содержит news-item
очевидно, число после каждого будет меняться, но если хэш начинается с news-item
тогда я хочу, чтобы функция выше была запущена, я даже не уверен, что это это вообще возможно, любые предложения были бы высоко оценены!
Нет необходимости в jQuery, это должно хорошо работать
if (window.location.hash) {
if (window.location.hash.indexOf('news-item') == 1) { // not 0 because # is first character of window.location.hash
// it at the start
}
else if (window.location.hash.indexOf('news-item') != -1) {
// it there, but not at the start
}
else {
// not there
}
}
Используйте регулярное выражение:
var matches = hash.match(/^#news-item-([0-9]+)$/);
if (matches) {
var number = matches[1];
// Rest of your code
}
window.location.hash.indexOf('news-item') == 1
, # будет в индексе 0