我试图匹配允许我从si获取值的特定网址(http://www.example.me/area/?si=)。 si值将是动态的
答案 0 :(得分:-1)
假设查询字符串中si
键的值始终为数字(即:0 - 9),请尝试此操作...
var url = 'http://www.example.me/area/?test=4894&si=4077765&f=fjjjf',
si = url.match(/.*[\?&]si=(\d+)/i)[1];
或者更通用......
function getQueryStringValue(url, key) {
var regex = new RegExp('.*[\\?&]' + key + '=(\\d+)', 'i');
return url.match(regex)[1];
}
如果没有数字试试这个......
/.*[\?&]si=(\w+)/i
<强>解释强>
答案 1 :(得分:-1)
获取任何查询字符串值
function qstr(variable) {
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i = 0; i < vars.length; i++) {
var pair = vars[i].split("=");
if (pair[0] == variable) {
return pair[1];
}
}
return false;
}
检查查询字符串是否存在
function isset_qstr(field) {
var url = vp_furl();
if (url.indexOf('?' + field + '=') != -1) {
return true;
} else if (url.indexOf('&' + field + '=') != -1) {
return true;
}
return false;
}
我认为你需要第一个功能。如果您认为它有用,请投票。
谢谢。祝你好运
答案 2 :(得分:-2)
这样的事情可以解决我的想法:
var regex = /http\:\/\/www\.example\.me\/area\/\?si=(\w*)/;
var url = 'http://www.example.me/area/?si=4077765';
var si = url.match(regex)[1]; // si = '4077765'
正则表达式的第一部分只是你的URL“\”用于转义特殊字符。
(\ d +)是一个捕获组,它匹配来自a-z,A-Z,0-9的所有字符,包括从0到n迭代的_(下划线)字符。