Regex 正则表达式-直到达到特定字符

Regex 正则表达式-直到达到特定字符,regex,Regex,所以对于www.test.com?pageToken=xyz&foo=bar我想得到pageToken及其值,直到&; 我尝试了/(pageToken=).[^&]/g,但它仍然得到了所有pageToken=xyz&foo=bar,而不仅仅是pageToken=xyz。我做错了什么?您需要删除中间的*,它贪婪地匹配任何零个或更多字符,然后使用否定字符类[^&]*匹配任何字符,但不匹配&,零次或更多次 (pageToken)=([^&]*) 您的正则表达式太贪婪了,因为*。但是,要获取参

所以对于
www.test.com?pageToken=xyz&foo=bar
我想得到
pageToken
及其值,直到
&

我尝试了
/(pageToken=).[^&]/g
,但它仍然得到了所有
pageToken=xyz&foo=bar
,而不仅仅是
pageToken=xyz
。我做错了什么?

您需要删除中间的
*
,它贪婪地匹配任何零个或更多字符,然后使用否定字符类
[^&]*
匹配任何字符,但不匹配
&
,零次或更多次

(pageToken)=([^&]*)

您的正则表达式太贪婪了,因为
*
。但是,要获取参数值,可以使用特定的函数。以下是一个您可以使用的:

函数getParameterByName(位置、名称){ name=name.replace(/\]/g,“\\]”).replace(/\[/g,“\\\[”); var regex=new RegExp(“[\/\?&]”+name+“=([^&\]*)”, 结果=regex.exec(位置); 返回结果===null?”:decodeURIComponent(结果[1]。替换(/\+/g,”); } document.getElementById(“res”).innerHTML=getParameterByName(“www.test.com/pageToken=xyz&foo=bar”,“pageToken”);