0

このプロパティを使用してdocument.referrer、次のURLを取得しています。

http://www.site.ru/profile/521590819123/friends
http://www.site.ru/profile/521590819123
http://www.site.ru/profile/521590819123/else

この文字列から変数にID(たとえば、上記の521590819123)を取得する必要があります。これが私がこれまでに持っているものです:

<script type="text/javascript">
var ref = document.referrer;
var url = 'http://site.com/?id=';
if( ref.indexOf('profile') >= 0 ) 
{
  ref = ref.substr(ref.lastIndexOf('/') + 1);
  window.top.location.href = (url+ref);
}
else
 {
 window.top.location.href = (url + '22');
 }
</script>

ただし、これはリファラー文字列がの形式の場合にのみ機能しますhttp://www.site.ru/profile/521590819123。上記の他の例は、最後に/friendsまたは/else最後に機能しません。誰かがこれらのインスタンスを処理するためにコードを修正するのを手伝ってもらえますか?

4

1 に答える 1

2

正規表現で最も簡単:

var m, id;
m = /profile\/(\d+)/.exec(document.referrer);
if (m) {
    id = m[1];
}

その正規表現は、「テキストの後に数字が続く最初の場所を見つけて、profile/その数字をキャプチャ グループに入れる」と言っています。次に、コードは一致があったことを確認し (文字列に一致がない場合)、一致する場合は、最初のキャプチャ グループから値を取得します (インデックス 1 にあり、インデックス 0 は一致する文字列全体です)。 . 必要に応じて変更します (たとえば、文字列がwww.site.ru/profile/単なる ではなく である場合にのみ一致するようにするprofile/など)。

于 2012-11-08T16:27:50.677 に答える