JavaScriptでURLハッシュを取得する方法
JavaScriptでURLのハッシュ値を取得する方法
JavaScriptの基本的な方法
JavaScriptでは、window.location.hash
プロパティを使ってURLのハッシュ値(#以降の部分)を取得することができます。
const url = "https://example.com/page?param=1#fragment";
const hashValue = window.location.hash; // "#fragment"
jQueryを使った方法
jQueryを使用している場合は、location.hash
を直接使用するか、$.param()
関数を使ってパラメータを解析することもできます。
const url = "https://example.com/page?param=1#fragment";
// 直接使用
const hashValue = location.hash; // "#fragment"
// $.param()を使って解析
const params = $.param(url.split('#')[1]); // "fragment"
URLオブジェクトを使う方法
より柔軟な操作が必要な場合は、URLオブジェクトを使用してハッシュ値を取得することができます。
const url = new URL("https://example.com/page?param=1#fragment");
const hashValue = url.hash; // "#fragment"
注意
- URLのパラメータ部分も解析したい場合は、
$.param()
関数を使用するか、URLオブジェクトのsearch
プロパティを使用することができます。 - ハッシュ値が存在しない場合、
window.location.hash
は空の文字列を返します。
基本的な方法
const url = "https://example.com/page?param=1#fragment";
const hashValue = window.location.hash; // "#fragment"
const url = "https://example.com/page?param=1#fragment";
// 直接使用
const hashValue = location.hash; // "#fragment"
// $.param()を使って解析
const params = $.param(url.split('#')[1]); // "fragment"
const url = new URL("https://example.com/page?param=1#fragment");
const hashValue = url.hash; // "#fragment"
解説
-
location.hash
を直接使用してハッシュ値を取得します。$.param()
関数を使用して、ハッシュ値をパラメータ形式に変換することもできます。
正規表現を使用する方法
正規表現を使用して、URLからハッシュ値を抽出することができます。
const url = "https://example.com/page?param=1#fragment";
const hashValue = url.match(/#(.*)$/)[1]; // "fragment"
URLオブジェクトのpathname
とsearch
プロパティを使用する方法
URLオブジェクトのpathname
とsearch
プロパティを使用して、ハッシュ値を除いたURLを作成し、その後ハッシュ値を抽出することができます。
const url = new URL("https://example.com/page?param=1#fragment");
const hashValue = url.toString().replace(`${url.pathname}${url.search}`, ''); // "#fragment"
カスタム関数を使用する方法
URLの構造を解析するカスタム関数を作成し、ハッシュ値を抽出することができます。
function getHashValue(url) {
const hashIndex = url.indexOf('#');
if (hashIndex !== -1) {
return url.substring(hashIndex);
}
return '';
}
const url = "https://example.com/page?param=1#fragment";
const hashValue = getHashValue(url); // "#fragment"
javascript jquery url