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 回答