2012-02-14 8 views
0

私はJavaScript関数を作成しています。私は、次の変数URL値のペアで数値を照合する方法

var cancelURL = "artGallery.cgi?productid=228&key=photo&resultsC=20"; 

から数228を取得する必要があり、誰かが値のペアの数を検索するための正規表現パターンを作成する方法私を見ることができますか?

+0

いつも 'productid = 'になるのですか? – Alan

+1

http://stackoverflow.com/questions/1842681/regular-expression-to-remove-one-parameter-from-query-string – xandercoded

+0

はいXander、いつも別のID – user1208110

答えて

1
var n = (cancelURL.match(/(?:\?|&)productid=(\d+)/) || [null,null])[1]; 

alert(n); 
+2

ここには、** mproductid **のような別の変数があるかもしれないと考えられるか、値が空である可能性がある場合には、提案があります: 'var s =(cancelURL.match(/(\?|)productid = )/)|| [''、 ''、 ']] [2]; ' – inhan

+0

は' s = etc'の代わりに** n = etc。**だったはずです。 – inhan

+0

@inhan:いい考えです。更新しました。私が行った変更は、グループを非キャプチャグループにすることでした。 –

0

productidを常に探している場合は、/productid=([^&]*)/iを正規表現として使用できます。それは=の後、次の&の前にすべてをつかむでしょう。

+0

以前の回答が私のために働いた、本当にありがとうコメントしてテストしてください。ありがとうございました。 – user1208110

0

全体のURLと一致するには、以下の正規表現を使用して、それぞれ=後のパラメータと対応する値と一致しparvalueという名前のグループのマッチコンテンツの外観、内部:

[^?]+\?(\&?(?<par>\w+)=(?<value>\w+))+ 

これは一般的な解決策ですが、productidパラメータを探すという特定の問題も解決します。

+0

私もそれをテストします。ありがとうシーナ。 – user1208110

関連する問題