我正在为我的网站做一个hovercard插件,但是在获取用户ID时遇到了问题。
个人资料网址可以是;
hxxp://mysite.com/?p=profile&id=1
hxxp://mysite.com/?p=profile&id=1&page=2
hxxp://mysite.com/?p=profile&id=1&v=wall
等。
如何通过javascript Regexp替换获取配置文件的ID?
$(document).ready(function () {
var timer;
$('a[href*="hxxp://mysite.com/?p=profile"]').hover(
function () {
if(timer) {
clearTimeout(timer);
timer = null
}
timer = setTimeout(function() {
// profile_id
// and get id's hovercard content here
},1000);
},
function () {
if(timer) {
clearTimeout(timer);
timer = null
}
$('.HovercardOverlay').empty();
}
);
});
答案 0 :(得分:2)
var result = $(this).attr("href").match(".*profile&id=(\d+)&?.*")
var id = result[1]
已在http://www.regular-expressions.info/javascriptexample.html
上测试过答案 1 :(得分:1)
我会这样做:
var url = "hxxp://mysite.com/?p=profile&id=1&v=wall"; // this.href or w/e
var paramsArray = url.match("[?].*")[0].substr(1).split("&");
var params = {};
for (var i in paramsArray)
{
var parts = paramsArray[i].split("=");
params[parts[0]] = parts[1];
}
然后获取id就像params.id
答案 2 :(得分:0)
以下是如何获取当前链接的网址:
$('a[href*="hxxp://mysite.com/?p=profile"]').hover(
function () {
if(timer) {
clearTimeout(timer);
timer = null
}
timer = setTimeout(function() {
// profile_id
var myUrl = $(this).attr("href");
// and get id's hovercard content here
},1000);
},
然后匹配正则表达式:
> var myUrl = "hxxp://mysite.com/?p=profile&id=5";
> var pattern = new RegExp("id=([0-9]+)");
> pattern.exec(myUrl);
["id=5", "5"]