Javascript 获取链接(url)参数的方法[正则与截取字符串]

 更新时间:2010年02月09日 12:29:28   作者:  
有时我们需要在客户端获取链接参数,一个常见的方法是将链接当做字符串,按照链接的格式分解,然后获取对应的参数值。本文给出的就是这个流程的具体实现方法。
当然,我们也可以用正则直接匹配,文章中也给出了一个正则的例子。
分解链接的方式:
复制代码 代码如下:

<script type="text/javascript">
<!--
// 说明:Javascript 获取链接(url)参数的方法

function getQueryString(name)
{
// 如果链接没有参数,或者链接中不存在我们要获取的参数,直接返回空
if(location.href.indexOf("?")==-1 || location.href.indexOf(name+'=')==-1)
{
return '';
}

// 获取链接中参数部分
var queryString = location.href.substring(location.href.indexOf("?")+1);

// 分离参数对 ?key=value&key2=value2
var parameters = queryString.split("&");

var pos, paraName, paraValue;
for(var i=0; i<parameters.length; i++)
{
// 获取等号位置
pos = parameters[i].indexOf('=');
if(pos == -1) { continue; }

// 获取name 和 value
paraName = parameters[i].substring(0, pos);
paraValue = parameters[i].substring(pos + 1);

// 如果查询的name等于当前name,就返回当前值,同时,将链接中的+号还原成空格
if(paraName == name)
{
return unescape(paraValue.replace(/\+/g, " "));
}
}
return '';
};

//http://localhost/test.html?aa=bb&test=cc+dd&ee=ff
alert(getQueryString('test'));
//-->
</script>

用正则匹配的方式:
复制代码 代码如下:

<script type="text/javascript">
<!--
function getQueryStringRegExp(name)
{
var reg = new RegExp("(^|\\?|&)"+ name +"=([^&]*)(\\s|&|$)", "i");
if (reg.test(location.href)) return unescape(RegExp.$2.replace(/\+/g, " ")); return "";
};

//http://localhost/test.html?aa=bb&test=cc+dd&ee=ff
alert(getQueryStringRegExp('test'));
//-->
</script>

相关文章

  • JavaScript通过RegExp使用正则表达式过程详解

    JavaScript通过RegExp使用正则表达式过程详解

    正则表达式用于定义一些字符串的规则。计算机可以根据正则表达式,来检查一个字符串是否符合指定的规则,或者将字符串中符合规则的内容提取出来。RegExp的意思是 Regular expression。使用typeof检查正则对象,会返回object
    2023-03-03
  • BootStrap tab选项卡使用小结

    BootStrap tab选项卡使用小结

    这篇文章主要为大家详细介绍了BootStrap tab选项卡使用小结,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • Js中var,let,const的区别你知道吗

    Js中var,let,const的区别你知道吗

    众所周知在Javascript中,var、let、const都可用于变量声明,但是之前没有梳理过它们之间的区别,下面这篇文章主要给大家介绍了关于Js中var,let,const区别的相关资料,需要的朋友可以参考下
    2023-02-02
  • 浅谈layui 数据表格前后台传值的问题

    浅谈layui 数据表格前后台传值的问题

    今天小编就为大家分享一篇浅谈layui 数据表格前后台传值的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-09-09
  • JavaScript删除数组中指定元素5种方法例子

    JavaScript删除数组中指定元素5种方法例子

    这篇文章主要给大家介绍了关于JavaScript删除数组中指定元素5种方法,在最近的项目中,有用到js对数组的操作,所以这里总结一下,需要的朋友可以参考下
    2023-07-07
  • 微信小程序实现自定义日历功能步骤详解

    微信小程序实现自定义日历功能步骤详解

    这篇文章介绍了如何在微信小程序中实现自定义日历功能,包括创建日历组件、编写代码实现、添加样式和事件处理等步骤,文章还提供了其他与Android开发相关的视频教程链接
    2025-01-01
  • 关于字符串和对象互转以及JSON.parse()的坑

    关于字符串和对象互转以及JSON.parse()的坑

    这篇文章主要介绍了关于字符串和对象互转以及JSON.parse()的坑及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • mvvm双向绑定机制的原理和实现代码(推荐)

    mvvm双向绑定机制的原理和实现代码(推荐)

    下面小编就为大家带来一篇mvvm双向绑定机制的原理和实现代码(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • JS实现发送短信验证后按钮倒计时功能(防止刷新倒计时失效)

    JS实现发送短信验证后按钮倒计时功能(防止刷新倒计时失效)

    这篇文章主要介绍了JS实现发送短信验证后按钮倒计时功能防止刷新倒计时失效问题,在项目开发中经常会用到此功能,下面小编通过本文给大家分享JS实现发送短信验证后按钮倒计时功能(防止刷新倒计时失效),需要的朋友参考下吧
    2017-07-07
  • 基于JS实现数字动态变化显示效果附源码

    基于JS实现数字动态变化显示效果附源码

    我们经常看到液晶电子表样式,数字动态显示,动态变化的在指定元素内显示数字。怎么实现效果呢?下面小编给大家带来了基于JS实现数字动态变化显示效果 ,感兴趣的朋友一起看看吧
    2019-07-07

最新评论