JavaScript で URL を解析する必要があります。
これが私のコードです:
var myRe = /\?*([^=]*)=([^&]*)/;
var myArray = myRe.exec("?page=3&Name=Alex");
for(var i=1;i<myArray.length;i++)
{
alert(myArray[i]);
}
name=value
残念ながら、最初のペアでしか機能しません。
コードを修正するにはどうすればよいですか?
JavaScript で URL を解析する必要があります。
これが私のコードです:
var myRe = /\?*([^=]*)=([^&]*)/;
var myArray = myRe.exec("?page=3&Name=Alex");
for(var i=1;i<myArray.length;i++)
{
alert(myArray[i]);
}
name=value
残念ながら、最初のペアでしか機能しません。
コードを修正するにはどうすればよいですか?
exec
一致を返すか、一致が見つからない場合は null を返します。exec
したがって、 null が返されるまで ingを続ける必要があります。
var myRe = /\?*([^=]*)=([^&]*)/;
var myArray;
while((myArray = myRe.exec("?page=3&Name=Alex")) !== null)
{
for(var i=1;i<myArray.length;i++)
{
alert(myArray[i]);
}
}
また、正規表現が間違っています。間違いg
なくスイッチが必要ですが、この正規表現を使用して動作させました:
var regex = /([^=&?]+)=([^&]+)/g;
実際の例を参照してください: http://jsfiddle.net/GyXHA/
クエリ文字列の名前と値のペアを取得するだけの場合は、次のようにすることができます。
function getQueryStringValue(varName) {
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i = 0; i < vars.length; i++) {
var pair = vars[i].split("=");
if (pair[0] == varName) { return pair[1]; }
}
}
var qs="da?page=3&page=4&Name=&xxx=43&page=&#adasdsadsa";
var params=qs.replace(/^.*\??/g,'').replace(/#.*/g,'').match(/[^&\?]+/g);
var args={};
if(params)for(var i=0;i<params.length;i++) {
var propval=params[i].split('=');
if(!args.hasOwnProperty(propval[0]))args[propval[0]]=[];
args[propval[0]].push(propval[1]);
}
// result:
// args=== {
// Name: [""],
// page: ["3","4",""],
// xxx: ["43"]
// }