Ответ 1
function getHashValue(key) {
var matches = location.hash.match(new RegExp(key+'=([^&]*)'));
return matches ? matches[1] : null;
}
// usage
var hash = getHashValue('hash');
Например, у меня есть URL как:
Я хочу, чтобы код js возвращался просто value2x
.
Я попробовал location.hash.split('=')[1]
, но это приводит к первому хеш-значению, например, если url
Он возвращает fdg&hash
.
Я хочу только значение hash
.
NO jQuery Пожалуйста.
Спасибо за помощь заранее.
function getHashValue(key) {
var matches = location.hash.match(new RegExp(key+'=([^&]*)'));
return matches ? matches[1] : null;
}
// usage
var hash = getHashValue('hash');
Как насчет
location.hash.split('hash=')[1].split('&')[0]
Это разделит хэш на hash=
и примет значение после hash = и перед любым другим аргументом.
Если вы выполняете обширные манипуляции с URL-адресами, вы можете проверить плагин URL JQuery.
Чтобы получить доступ к параметрам в хэшах URL-адреса
$.url('http://www.google.com/#hfh=fdg&hash=value2x').fparam('hash');
или если его текущий url
$.url().fparam('hash');
Надеюсь, что это поможет
location.parseHash = function(){
var hash = (this.hash ||'').replace(/^#/,'').split('&'),
parsed = {};
for(var i =0,el;i<hash.length; i++ ){
el=hash[i].split('=')
parsed[el[0]] = el[1];
}
return parsed;
};
var obj= location.parseHash();
obj.hash; //fdg
obj.hfh; //value2x
Разделить на &
, а затем на =
:
pairs = location.hash.substr(1).split('&').map(function(pair) {
var kv = pair.split('=', 2);
return [decodeURIComponent(kv[0]), kv.length === 2 ? decodeURIComponent(kv[1]) : null];
})
Здесь pairs
будет массивом массивов с ключом в 0
и значением 1
:
[["hfh","fdg"],["hash","value2x"]]