20

たとえば、次のような URL があります。

http://www.google.com/#hash=value2x

私はjsコードがちょうど返すようにしたいvalue2x. 試してみlocation.hash.split('=')[1]ましたが、URLが次の場合のような最初のハッシュ値が得られます

http://www.google.com/#hfh=fdg&hash=value2x

返しますfdg&hash。の値だけが必要ですhash

いいえ jQuery してください。

事前に助けてくれてありがとう。

4

7 に答える 7

47
function getHashValue(key) {
  var matches = location.hash.match(new RegExp(key+'=([^&]*)'));
  return matches ? matches[1] : null;
}

// usage
var hash = getHashValue('hash');
于 2012-08-12T08:26:17.557 に答える
5

どうですか

location.hash.split('hash=')[1].split('&')[0]

これにより、ハッシュが分割され、hash=hash= の後、他の引数の前に値が取得されます。

于 2012-08-12T08:24:09.683 に答える
2
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
于 2012-08-12T09:33:42.063 に答える
2

広範な URL 操作を行っている場合は、JQuery URL プラグインを確認する必要があります。

URL ハッシュのパラメーターにアクセスするには

    $.url('http://www.google.com/#hfh=fdg&hash=value2x').fparam('hash');

またはその現在のURLの場合

    $.url().fparam('hash');

それが役に立てば幸い

于 2012-08-12T08:33:16.990 に答える
1

分割して&から=:

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];
})

キーが atで値が atpairsの配列の配列は次のようになります。01

[["hfh","fdg"],["hash","value2x"]]
于 2012-08-12T08:31:34.127 に答える
0

URL の場合?: http://www.google.com/#?hash=value2x

コードは次のとおりです。

const url = 'http://www.google.com/#?hash=value2x';
new URLSearchParams(
  (
    new URL(url)
  ).hash.slice(1).split('?')[1]
).get('hash');

またurlはない場合?

const url = 'http://www.google.com/#hash=value2x';
(new URLSearchParams((new URL(url)).hash.slice(1))).get('hash')
于 2021-11-01T11:57:33.647 に答える