URL内のパラメータ名と値を取得するためにjsを使用することはあまりありませんが、今日はその具体的な方法例を紹介します。
パラメーター名がわかっている場合、正規表現を使用してパラメーター値を簡単に取得できます。
jsの実装方法は以下の通りです。
コードは以下の通りです |
|
function getValue(url, name) { var reg = new RegExp('(?|& )' + 名前 + ' =([^&?]*)', 'i'); var arr = url.match(reg);
if (arr) { return arr[2]; } return null; }
|
または
方法 1: 通常の分析
コードは次のとおりです |
|
function文字列(名前) { var reg = new RegExp("(^|& )" + name + "=([^&]*)(&|$)", "i"); var r = window.location.search.substr(1).match (reg); if (r != null) return unescape(r[2]); }
次のように呼び出します。 ("パラメータ名 2")); alert(GetQueryString("パラメータ名 3"));
|
すべてのパラメータ名とそれに対応する値を取得したい場合は、正規表現メソッドを使用することもできます。 ,
jsの実装方法:
コードは以下の通りです
|
|
function getKeyValue(url) { var result = {}; var reg = new RegExp('([? |&])(.+?)=([^ &?]*)', 'ig'); var arr = reg.exec(url);
while (arr) { result[arr[2] ] = arr[3];
arr = reg.exec(url); }
return result; }
|
match と呼ばれる別のメソッドが JS でのマッチングに使用されることに注意してください。文字列のメソッドであり、exec は RegExp オブジェクトのメソッドです。文字列の match メソッドを使用し、正規表現をグローバル一致として指定した場合、正規表現内のグループ化は役に立たず、返される結果は正規表現に一致するすべての部分文字列になります。 exec メソッドがグローバル一致フラグを使用しない場合、最初に一致したサブ文字が返されます。グローバル一致フラグが使用されている場合は、再度呼び出されると、シンボルに一致する文字列が最初から実行されます。最後の一致結果から開始されます。
PHPの実装方法は以下の通りです
コードは以下の通りです
|
|
function getKeyValue($url) { $result = array(); $mr = preg_match_all( '/(?| &)(.+?)=([^&?]*)/i', $url, $matchs); if ($mr !== FALSE) { for ($i = 0; $i < $mr; $i++) { $result[$matchs[2][$i]] = $matchs[3][$i]; } }
$result; }
|
PHP の preg_match_all メソッドは、3 番目に指定されたパラメーター (2 次元配列) に一致結果を保存します。最初の次元はグループ化情報の配列です。つまり、最初の配列には一致するすべての完全な文字列が格納され、2 番目の配列には最初の () に対応する値が格納され、2 番目の次元はグループ化値です。
以上がjsを使用してURLのパラメータ名を取得するチュートリアルの例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。