-1

私はURLを持っています:

http://www.youtube.com/watch?v=JssO4oLBm2s&list=PLGHJ4fVazTpYRZTEhqgurtSH6XlDMIEJM&shuffle=382

編集:また、URLが変数に保存されるべきではなく、次のように動作するようにしたい:

$(".videothumb a").live('click', function() {
        var URL = < do something to cut the string > 
        console.log(URL);
        return false;
    });

そして、「=」で始まり「&」で終わる URL を切り取りたいので、「JssO4oLBm2s」のような文字列になります。

私は slice() 関数しか知りませんが、開始点と終了点として数値しかとらないと思います。

4

5 に答える 5

1

を使用.split()すると、パラメータ変更の順序に失敗する位置ベースのソリューションが得られます。代わりに、あなたが探しているのは、次のvような単純な正規表現を使用できる、呼び出されたパラメーターの値だと思います

'http://www.youtube.com/watch?v=JssO4oLBm2s&list=PLGHJ4fVazTpYRZTEhqgurtSH6XlDMIEJM&shuffle=382'.match('[?&]v=(.*?)(&|$)')[1]
于 2013-11-09T01:22:46.313 に答える
1

試す

'http://www.youtube.com/watch?v=JssO4oLBm2s&list=PLGHJ4fVazTpYRZTEhqgurtSH6XlDMIEJM&shuffle=382'
    .split('=')[1] // 'JssO4oLBm2s&list'
    .split('&')[0] // 'JssO4oLBm2s'

vまたは、確実にパラメータを取得したい場合は、

var v, args = 'http://www.youtube.com/watch?v=JssO4oLBm2s&list=PLGHJ4fVazTpYRZTEhqgurtSH6XlDMIEJM&shuffle=382'.split("?")[1].split('&');
for(var i = args.length-1; i>=0; --i) {
    var data = args[i].split('=');
    if(data[0]==='v') {  v = data[1]; break;  }
}
于 2013-11-09T01:23:39.747 に答える
0
v = 'JssO4oLBm2s&list=PLGHJ4fVazTpYRZTEhqgurtSH6XlDMIEJM&shuffle=382';

var vamploc = v.indexOf("&");

vstring = v.substr(0, vamploc);

コードを少しいじって改良することもできますが、一般的な概念は機能します。

于 2013-11-09T01:32:59.683 に答える
0

正規表現を使用(?:v=)(.+?)(?:&|$)

フィドルのデモ

"http://www.youtube.com/watch?v=JssO4oLBm2s&list=PLGHJ4fVazTpYRZTEhqgurtSH6XlDMIEJM&shuffle=382".match('(?:v=)(.+?)(?:&|$)')[1]


参照

http://gskinner.com/RegExr/

于 2013-11-09T01:48:38.083 に答える
0

を使用し.split()ます。わかりやすくするために 2 行に分けています

var first = "http://www.youtube.com/watch?v=JssO4oLBm2s&list=PLGHJ4fVazTpYRZTEhqgurtSH6XlDMIEJM&shuffle=382".split('=')[1]
var result = first.split('&')[0]; //result - JssO4oLBm2s
于 2013-11-09T01:22:09.317 に答える