1

これは私のセットアップです:

var test = 
"http://tv.website.com/video/8086844/randomstring/".match(/^.+tv.website.com\/video\/(.*\d)/);

ビデオID(8086844)を抽出したいのですが、正規表現は機能しますが、「ランダム文字列」の後に別の数字が追加されると、8086844 +ランダム文字列+その他の番号にも一致します。

常にビデオ ID だけを取得するには、何を変更する必要がありますか。

4

4 に答える 4

1

問題はその部分です。貪欲な文字列が数字で終わるのを探します。代わりに、 の後に(.*\d)一連の数字が続く必要があります。video/(\d+)

に変更します

var test  = "http://tv.website.com/video/8086844/randomstring/dd".match(/^.+tv.website.com\/video\/(\d+)/)[1];
于 2013-09-07T14:28:08.640 に答える
1

この正規表現を試してください

/^.+tv.website.com\/video\/([\d]+)/

単語の後にすべての数字文字を検索...video\し、その後、数字以外の文字が来るまで、一致するすべての数字を提供します

于 2013-09-07T14:28:11.150 に答える
0

これは最も簡単です:

ここでsubstrを使用します

test.substr(28,7)

フィドル

文字列テストからidを抽出するには: substr(from,to)を使用します

于 2013-09-07T14:28:47.530 に答える