我正在尝试使用regExp来读取URL参数。我需要在以下字符串上执行匹配:
SomeMoreText&action='{%22JsonParameter%22:[%221234%22]}'&SomeMoreText
最终结果应为
'{%22JsonParameter%22:[%221234%22]}'
我正在唠叨我需要一个表达来找到& action =和以下&之间的所有内容。我尝试了不同的表达方式但没有成功,说实话,我在理解正则表达式语法方面遇到了很多困难。这里的问题是结肠,引号(%22)和括号我认为。如果它只是文本,我相信这样的东西会起作用:
/action=([\w\-]+)/
有人可以帮忙吗?
由于
答案 0 :(得分:4)
怎么'回合
var m = /action=([^&]+)/.exec(str);
if (m) {
// The content is in m[1]
}
答案 1 :(得分:2)
不要使用正则表达式,只需尝试:
var n=str.split("&");
答案 2 :(得分:0)
您可以使用positive and negative look-ahead。他们尊重(?<= expression )
和(?= expression )
。
以下内容将非贪婪地查找任何字符.*?
,其前面是'action =',(?<=action=)
,后跟'&amp;',(?=&)
完整的正则表达式是:(?<=action=).*?(?=&)
您可以测试此here。
答案 3 :(得分:0)
您也可以使用
result = str.split("action=")[1];
result = result.substring( 0, result.indexOf("&") );
演示here
答案 4 :(得分:0)
正如@PearsonArtPhoto之前所说,你可以简单地使用split:
var results=str.split("&");
然后迭代结果数组,如下所示:
for(i=0; i< results.length ; i++){
if( results[i].split('=')[0] == 'action'){ // this condition to test that the key is 'action'
return results[i].split('=')[1];
}
}
我希望这会有所帮助。