javascript拆分和&符号的问题

时间:2014-08-19 15:26:49

标签: javascript split url-parameters

我正在尝试从网址提取数据。

如果我使用以下代码,我会得到我想要的值。 Thursday%2C+August+21+at++1%3A00+PM+%28Eastern%29

<script type="text/javascript">      
function getQueryVariable(variable)      
{        
 var query =     'contactId=387411&inf_contact_key=6a3ee3733d254ce05f085b2eaaef175e11f51a9f64829d0562209e2854f973be&inf_field_FirstName=Jason&inf_field_Email=jncrenshaw%40gmail.com&inf_custom_SSWebinarDateTimeText=Thursday%2C+August+21+at++1%3A00+PM+%28Eastern%29&inf_custom_SSWebinarTitle=Webinar+Training&inf_custom_SSWebinarUrl=xr92p1yw7d&inf_ZmUkW7BSP7XL9LTq=';        
 var vars = query.split("&");        
 for (var i=0;i<vars.length;i++) {       
 var pair = vars[i].split("=");      
 if(pair[0] == variable){return pair[1];}        
 }       
 return(false);      
}        
alert(getQueryVariable('inf_custom_SSWebinarDateTimeText'));         
</script>

但如果我使用此代码,则返回false

<script type="text/javascript">      
function getQueryVariable(variable)      
{        
 var query = window.location.search.substring(1);
 alert(query);   
 var vars = query.split("&");        
 for (var i=0;i<vars.length;i++) {       
 var pair = vars[i].split("=");      
 if(pair[0] == variable){return pair[1];}        
 }       
 return(false);      
}        
alert(getQueryVariable('inf_custom_SSWebinarDateTimeText'));         
</script>

我添加了alert(query);来查看window.location.search.substring(1);是否正常运行,并且我已确认网址查询中的结果字符串完全与查询相同我手动添加了第一段代码。

那么,为什么在第一个例子中正确分割查询,但在第二个例子中,它不是?

我已经确认,在第二个示例中,尝试返回contactId以外的任何内容将始终返回false。但即便如此,这也不是正确的价值。如果我尝试在第二个示例中检索contactId,则会返回387411&inf_contact_key

这告诉我,当我使用window.location.search.substring(1);时,它不会将结果除以&,尽管它与contactId=387411&inf_contact_key=6a3ee3733d254ce05f085b2eaaef175e11f51a9f64829d0562209e2854f973be&inf_field_FirstName=Jason&inf_field_Email=jncrenshaw%40gmail.com&inf_custom_SSWebinarDateTimeText=Thursday%2C+August+21+at++1%3A00+PM+%28Eastern%29&inf_custom_SSWebinarTitle=Webinar+Training&inf_custom_SSWebinarUrl=xr92p1yw7d&inf_ZmUkW7BSP7XL9LTq=具有相同的字符串值(在第一个中正确分割)例子)。

我在这里完全不知所措,大概花了3个小时。任何想法在这里发生了什么?

提前致谢!

JRadTheBad

0 个答案:

没有答案