Javascript 如何使用regexjs获取附加到URL的多个数据
以下是网址:Javascript 如何使用regexjs获取附加到URL的多个数据,javascript,regex,Javascript,Regex,以下是网址: http://url?query=orderform&sid=000&layout=&clientName=Client%20Demo%20TestprojectName=xxxxx 从上面的URL中,我想获取clientName和projectName值,并在我的服务中使用它。我现在 在JavaScript中使用以下代码: testjs { var clientName= getParam("clientName"); var proje
http://url?query=orderform&sid=000&layout=&clientName=Client%20Demo%20TestprojectName=xxxxx
从上面的URL中,我想获取clientName和projectName值,并在我的服务中使用它。我现在
在JavaScript中使用以下代码:
testjs
{
var clientName= getParam("clientName");
var projectName = getParam("projectName");
function getParam(name)
{
name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
var regexS = "[\\?&]"+name+"=([^&#]*)";
var regex = new RegExp( regexS );
var results = regex.exec(window.location.href);
if (results == null)
return "";
else
return results[1];
}
}
上述代码的输出为:
projectName=ModifiedProject
clientName=Client%20Demo%20TestprojectName=xxxxx
我应该对getParam函数做什么更改,以便if将clientName作为
客户端%20Demo%20Test`而不是客户端%20Demo%20TestprojectName=xxxxxxx
要获取客户机名称,您需要使用不同的正则表达式和potive前瞻断言,如下所示
clientName=.*(?=projectName)
将匹配clientName=客户端%20Demo%20Test
例如:
试试这个。只用一个正则表达式就可以完成。请参阅演示
clientName=((?:(?!projectName).)*)|projectName=([^&#]*)
var re = /clientName=((?:(?!projectName).)*)|projectName=([^&#]*)/gm;
var str = 'http://url?query=orderform&sid=000&layout=&clientName=Client%20Demo%20TestprojectName=xxxxx';
var m;
while ((m = re.exec(str)) != null) {
if (m.index === re.lastIndex) {
re.lastIndex++;
}
// View your result using the m-variable.
// eg m[0] etc.
}