RegExp大师,留意我的电话!
这可能非常简单,但我已经把自己描绘成一个心理角落。
采用常规网址,在?
后拆分,这会提供类似variable=val&interesting=something¬interesting=somethingelse
的字符串,我想提取interesting
的值。
我感兴趣的变量的名称可以是另一个变量的子串。 所以比赛应该是
我尝试了一些方法
[\^&]interesting=(.*)[&$]
但我一无所获......
更新 这将在每个get请求的Firefox插件中运行,这意味着jQuery不可用,如果可能的话,我想避免因编写函数而导致额外的字符串操作。
对我而言,这感觉就像是一个通用的“正则表达式字符串的提取部分”,但也许我错了(RegEx显然不是我强大的一面)
答案 0 :(得分:1)
简单的解决方案
var arr = "variable=val&interesting=something¬interesting=somethingelse".split("&");
for(i in arr) {
var splits = arr[i].split("=");
if(splits[0]=="interesting") alert(splits[1]);
}
也是单线匹配
"variable=val&interesting=something¬interesting=somethingelse".match(/(?:[&]|^)interesting=((?:[^&]|$)+)/)[1]
答案 1 :(得分:0)
function getValue(query)
{
var obj=location.search.slice(1),
array=obj.split('&'),
len=array.length;
for(var k=0;k<len;k++)
{
var elm=array[k].split('=');
if(elm[0]==query)return elm[1];
}
}
此函数直接提取查询URL并返回相应的值(如果存在)。
//usage
var get=getValue('interesting');
console.log(get);//something
答案 2 :(得分:0)
如果您使用的是Firefox附加SDK,则可以使用url模块:
https://addons.mozilla.org/en-US/developers/docs/sdk/latest/modules/sdk/url.html
这比使用正则表达式要好得多。