我是这个网站的新手,我也是Javascript的新手。 我要做的是从链接中获取值,例如: http://bricks.couponmicrosite.net/JavaBricksWeb/LandingPage.aspx?O=107905&C=MF&CPT=qwbc74g7HdLtKVVQ1oNe&P=test&tqnm=td3ffdn764156741
我需要取这个值:O = 107905,如果它只是一个代码我需要运行一个文件(文件A),
如果它看起来像这样:O = 107905~107906,那么我需要运行一个不同的文件(文件B)。
我认为用javascript创建一个函数,如果它(〜)缺失,那么将使用文件A,如果有一个或多个(〜)那么文件B将开始工作
非常感谢提前!
答案 0 :(得分:2)
好。我们确实鼓励您在提供解决方案之前先提供自己的代码,但这在javascript中是一个相当简单的问题。这是我的看法。
您必须解决的第一个问题实际上是以有意义的格式获取查询字符串参数。在这里,我创建了一个对象,它使用查询字符串键作为对象键(IE 9+仅因为forEach
)
var tmpObject = {}
location.search.substr(1).split('&').forEach(function(item){
var o = item.split('=');
tmpObject[o.shift()] = o.shift();
});
然后,只需要确保查询字符串包含目标对象(在本例中为“O”)并确定是否存在多个。
if(tmpObject.hasOwnProperty('O') && tmpObject.O.split('~').length > 1) {
console.log('return multiple files');
} else {
console.log('return one file');
}
答案 1 :(得分:1)
试试这个
var url = "http://bricks.couponmicrosite.net/JavaBricksWeb/LandingPage.aspx?O=107905&C=MF&CPT=qwbc74g7HdLtKVVQ1oNe&P=test&tqnm=td3ffdn764156741";
var search = url.substring(url.indexOf("?")+1);
var map={};
search.forEach(function(val){var items=val.split("="); map[items[0]]=items[1];});
if (map["O"].indexOf("~") != -1)
{
//O value has ~ in it
}
else
{
//O has no ~ in it
}
答案 2 :(得分:0)
获得参数的可能解决方案是:How to get the value from the GET parameters?
获得参数值后,您可以确定是否找到了String.prototype.indexOf的'〜'。
String.prototype.indexOf
返回另一个字符串中字符串的位置。如果未找到,则返回-1。