javascript中的正则表达式匹配是否可以匹配equal运算符后的任何单词?

javascript中的正则表达式匹配是否可以匹配equal运算符后的任何单词?,javascript,jquery,regex,Javascript,Jquery,Regex,我试图在此语句中以?state=wildcard为目标: ?state=uncompleted&dancing=yes 我希望以整行为目标?state=uncomplete,但也允许它查找=运算符后面的任何单词。所以“未完成”也可能是完成的、非计划的,或者是你所拥有的 我得到的一个警告是,我可以将通配符放在与符号之前,但是如果没有与符号,并且参数状态本身是,该怎么办?尝试以下正则表达式: var regex=/\?state=([^&]+)/; var match='?state=un

我试图在此语句中以
?state=wildcard
为目标:

?state=uncompleted&dancing=yes
我希望以整行为目标
?state=uncomplete
,但也允许它查找
=
运算符后面的任何单词。所以“未完成”也可能是完成的、非计划的,或者是你所拥有的


我得到的一个警告是,我可以将通配符放在与符号之前,但是如果没有与符号,并且参数
状态本身是,该怎么办?

尝试以下正则表达式:

var regex=/\?state=([^&]+)/;
var match='?state=uncompleted&dancing=yes'。匹配(regex);
匹配;//=>[“?状态=未完成”,“未完成”]

它将匹配字符串“\?state=”后面的每个字符,除了一个与符,如果需要,将一直匹配到字符串的末尾。

您可以匹配任意多个非
&
字符。如果根本没有任何
&
,当然也可以:

/(\?state=[^&]+)/.exec("?state=uncompleted");
/(\?state=[^&]+)/.exec("?state=uncompleted&a=1");

// both: ["?state=uncompleted", "?state=uncompleted"]

可选正则表达式:
/\?state=(.+?)(?:&|$)/


它将匹配所有内容,直到第一个
&
字符或字符串的结尾,这里不需要正则表达式。众所周知,正则表达式的速度往往很慢,尤其是在使用look aheads时。为什么不这样做:

var URI = '?state=done&user=ME'.split('&');
var passedVals = [];
这给了我们['?state=done','user=ME'],现在只需执行for循环:

for (var i=0;i<URI.length;i++)
{
    passedVals.push(URI[i].split('=')[1]);
}

for(var i=0;我可能是《魔兽世界》的副本这太棒了。谢谢
var URI = 'state=done&user=ME'.split('&');
var urlObjects ={};
for (var i=0;i<URI.length;i++)
{
    urlObjects[URI[i].split('=')[0]] = URI[i].split('=')[1];
}