1

文字列内のどこにでも「&mediaID=334380」を解析して一致させる必要がある連結 JavaScript 文字列があります。「&mediaID=」を見つけて、「=」に続く数字を書き出し、「」で終わるようにする必要があります。

この連結変数には、「&mediaID=334380」のインスタンスが 1 回だけ含まれますが、文字列の別の部分にある可能性があります。

var vidPlyrVars = "vidPlayerSchool=" + vid_partner + "&vidPlayerWd=" + vid_width +      "&vidPlayerHt=" + vid_height + "&";
vidPlyrVars += "vidURL=" + vid_url + "&imgURL=" + img_url + "&color_button_bkg=0d141a" + "&color_controls_bkg=0d141a" + "&mediaID=334380" + "&share_buttons=on" + "&vip_url=http://somesite.com/all/index.html" + "&";
vidPlyrVars += "vidTitle=" + escape("some title") + "&";
vidPlyrVars += "autoplay=off&autoplay_refresh=always&full_screen=on&ad_prerolls=off&";
vidPlyrVars += "list_type=none&";

番号がいくつあっても &mediaID= の後の番号が必要です。分割を試みましたが、 &mediaID= が文字列内の別の場所にある可能性があるため、機能しません。

*また。mediaID に、media_ID や mediaID などの ID の前に _ がある場合とない場合があります。1 つの正規表現で両方を一致させる方法はありますか?

ありがとうございました。

4

3 に答える 3

0

その後にアンペアサンドが続くことが確実にわかっている場合は、正規表現を使用して見つけることができます。

のようなパターン&mediaID=(\d+)&で十分です。その後、あなたの番号はキャプチャグループに保存されます。

http://www.javascriptkit.com/javatutors/redev2.shtml

于 2012-09-19T16:43:05.403 に答える
0

正規表現はここに行く方法です。

コンソールでこれを試してください:

"asdasdasdasdasd&mediaID=645654654&asdasdasdasd=asdasdasdasdasd".match(/&mediaID=[0-9]+/)

また、番号を分けてご希望の場合は、

"asdasdasdasdasd&mediaID=645654654&asdasdasdasd=asdasdasdasdasd".match(/&mediaID=([0-9]+)/)

[0-9] +は、少なくとも1回発生する0から9までの任意の数を意味します。また、括弧で囲むと、応答(ちなみに配列)に格納されます。

他に疑問がある場合はお知らせください。乾杯!

于 2012-09-19T16:43:54.963 に答える
0

これはうまくいくはずです:

var number = str.match(/&mediaId=(\d+)/)[1];
于 2012-09-19T16:44:25.727 に答える