2

クエリをオブジェクトに入れる以下の関数があります。それは機能しますが、オブジェクトにURLを追加します.Imは、URLを削除して変数のみを含める方法を理解するのに十分な正規表現に精通していません.

function urlToObj(url)
{
        var obj = {};
        url.replace(
            new RegExp("([^?=&]+)(=([^&]*))?", "g"),
            function($0, $1, $2, $3) { obj[$1] = $3; }
        );

        return obj;
}

例えば

url = http://www.example.com/hello/world.php?var1=1&var2=2
url = http://www.example.com/hello/world.asp?var1=1&var2=2
url = http://www.example.com/hello/world?var1=1&var2=2

obj = urlToObj(url);

出力

obj { var1="1", var2="2", http://www.example.com/hello/world.php="" }
obj { var1="1", var2="2", http://www.example.com/hello/world.asp="" }
obj { var1="1", var2="2", http://www.example.com/hello/world="" }

URLを削除したいので、このようになります

obj { var1="1", var2="2" }

私が間違っている例や情報は素晴らしいでしょう。

ありがとう

4

2 に答える 2

0

いくつかのハックはどうですか?:-)

function urlToObj ( url ) {
    var obj = {};
    url.replace(
        new RegExp("([^?=&]+)(=([^&]*))?", "g"),
        function($0, $1, $2, $3) { obj[$1] = $3; }
    );

    // Now, you know you've got an empty string for your url
    // So let's loop through the object and remove this property
    for ( var prop in obj ) {

        // You only want the objects properties, nothing inherited
        if ( obj.hasOwnProperty( prop ) ) {

            // If it's an empty string
            if ( obj[ prop ] === '' ) {

                // Delete it!
                delete obj[ prop ]
            }
        }
    }
    return obj;
}
于 2012-04-22T17:16:19.347 に答える
0

この拡張機能は、迅速で読み取り可能なクエリ文字列の変更と作成のために、シングルトン クエリ文字列オブジェクトを作成します。このプラグインは、ページのクエリ文字列を取得し、これを修正したバージョンを少しのコードで作成する簡単な方法を提供します。

http://archive.plugins.jquery.com/project/query-object

于 2012-04-22T16:40:54.233 に答える