1

RegExpの達人、私の電話に注意してください!

これはおそらく非常に単純ですが、私は精神的なコーナーで自分自身を描きました。

通常のURLを取得し、の後に分割します。これにより、の値を抽出したい?ような文字列が得られます。variable=val&interesting=something&notinteresting=somethingelseinteresting

興味のある変数の名前は、別の変数の部分文字列にすることができます。したがって、一致する必要があります

  • 文字列の先頭または「&」文字
  • 続いて「interesting=」
  • キャプチャしたい文字列が続きます
  • 別の「&」または文字列の終わりが続く

に沿って何かを試しました [\^&]interesting=(.*)[&$] が、何も得られませんでした...

更新 これは、すべてのgetリクエストでFirefoxアドオンで実行されます。つまり、jQueryは使用できません。可能であれば、関数の記述による余分な文字列操作を避けたいと思います。

私には、これは一般的な「正規表現を使用して文字列の一部を抽出する」ように感じますが、おそらく私は間違っています(正規表現は明らかに私の強みではありません)

4

3 に答える 3

1

簡単な解決策

var arr = "variable=val&interesting=something&notinteresting=somethingelse".split("&");
for(i in arr) {
var splits = arr[i].split("=");
if(splits[0]=="interesting") alert(splits[1]);
}

また、単一行の一致

"variable=val&interesting=something&notinteresting=somethingelse".match(/(?:[&]|^)interesting=((?:[^&]|$)+)/)[1]
于 2013-03-19T11:02:01.273 に答える
0
function getValue(query)
{
var obj=location.search.slice(1),
    array=obj.split('&'),
    len=array.length;
    for(var k=0;k<len;k++)
    {
        var elm=array[k].split('=');
        if(elm[0]==query)return elm[1];
    }

}

この関数は、クエリ URL を直接抽出し、存在する場合は対応する値を返します。

//usage
var get=getValue('interesting');
console.log(get);//something
于 2013-03-19T11:18:30.410 に答える
0

Add-on SDK for Firefox を使用している場合は、url モジュールを使用できます。

https://addons.mozilla.org/en-US/developers/docs/sdk/latest/modules/sdk/url.html

これは、正規表現を使用するよりもはるかに優れています。

于 2013-03-19T18:24:39.340 に答える